Robert Swain
cae309fa26
mediaapi/writers/download: Handle panic to ensure waking of goroutines
...
If the active request were to panic, we need to ensure all the waiting
goroutines get woken up.
2017-06-01 14:54:59 +02:00
Robert Swain
ce21b32d38
mediaapi/writers/download: Wrap broadcast call in closure to re-evaluate args
2017-06-01 14:44:00 +02:00
Robert Swain
4457ebddca
mediaapi/writers/download: Rework remote file download synchronisation
...
Avoid locking around db requests by only locking around active requests
and always creating an active request if there is none. A nice side
effect of this is that if many parallel requests for remote media come
in (a common case) then only one database query is made for the duration
of the query.
2017-06-01 12:32:15 +02:00
Robert Swain
a3b1c7535a
mediaapi/writers/download: Remove unnecesary Unlock, Lock after Cond.Wait
2017-06-01 08:39:35 +02:00
Robert Swain
923013aa55
mediaapi: Add support for downloading of remote files
2017-05-31 17:56:11 +02:00
Robert Swain
07c821daec
mediaapi/writers: Fix InternalServerError responses
2017-05-31 17:41:42 +02:00
Robert Swain
57ba466da1
Merge pull request #125 from matrix-org/rob/media-download-local
...
mediaapi/writers/download: Add local download support
2017-05-31 15:47:43 +02:00
Robert Swain
2e013e3408
mediaapi/writers/download: Remove unnecessary closeConnection()
2017-05-31 15:39:19 +02:00
Robert Swain
bd96d99a3a
mediaapi/writers/download: 500 ISE if disk and db file size differ
2017-05-31 15:08:00 +02:00
Robert Swain
e33438a37e
mediaapi/writers/upload: Add standard fields to logger
...
So that they apply to all log messages thereafter
2017-05-31 14:54:10 +02:00
Robert Swain
5922ad383d
mediaapi/writers/upload: Don't use deprecated sql.ErrNoRows check
2017-05-31 14:52:45 +02:00
Robert Swain
f0c717b0a1
mediaapi/writers/download: Escalate corrupt db/file cases to errors
2017-05-31 14:33:49 +02:00
Robert Swain
9606ea28ce
mediaapi/writers/download: Always log origin and mediaID
2017-05-31 14:30:57 +02:00
Robert Swain
a45f008c12
mediaapi/storage: Don't leak sql.ErrNoRows out of storage package
2017-05-31 14:29:28 +02:00
Robert Swain
a936ad5063
mediaapi/writers/download: Add local download support
2017-05-31 13:46:21 +02:00
Robert Swain
3f7ef7690b
Merge pull request #124 from matrix-org/rob/media-api-upload
...
/upload handler and storage database
2017-05-31 12:32:10 +02:00
Robert Swain
a0eae6922d
mediaapi/writers: Remove unnecessary fmt.Sprintf
2017-05-31 07:12:22 +02:00
Robert Swain
08d1eb9669
mediaapi/upload: Improve HTTP status codes for error cases
2017-05-31 07:11:21 +02:00
Robert Swain
523303277e
mediaapi/storage: Refer to RFC instead of golang for base64 format
2017-05-31 07:11:00 +02:00
Robert Swain
61329ee380
mediaapi/fileutils: Comment truncation of data when reading
2017-05-31 07:10:01 +02:00
Robert Swain
a4300eefc4
mediaapi/fileutils: Fix and comment os.IsNotExist bug
2017-05-31 07:08:21 +02:00
Robert Swain
63ccd770c6
mediaapi/fileutils: Use filepath not path for filesystem paths
2017-05-31 07:07:48 +02:00
Robert Swain
0ca2931b62
mediaapi/fileutils: Change path schema to put file in subdir of hash
2017-05-31 07:06:42 +02:00
Robert Swain
8c6f30eadc
mediaapi/config: Remove obsolete proxying comment and add default comment
2017-05-31 07:05:07 +02:00
Kegsay
50aacd4f3c
Hook up registration/login APIs and implement access token generation ( #122 )
2017-05-30 17:51:40 +01:00
Mark Haines
65b66a6452
Add API for querying the state after a list of events ( #123 )
...
* Add API for querying the state after a list of events
* Implement state after events API
* Actually implement the API
* Reorder .travis.yml
* Comments
* Use common.MakeAPI
2017-05-30 17:44:31 +01:00
Robert Swain
6fc6499848
mediaapi/fileutils: Remove obsolete error variables
2017-05-26 17:50:16 +02:00
Robert Swain
4f2d9a3b69
mediaapi/storage: Simplify descriptions
2017-05-26 17:44:43 +02:00
Robert Swain
9678cb6ea1
mediaapi/writers/upload: Simplify storeFileAndMetadata description
2017-05-26 17:42:08 +02:00
Robert Swain
9ecf620ad9
mediaapi/writers/upload: Factor out doUpload from Upload
2017-05-26 17:34:58 +02:00
Robert Swain
d83359dd51
mediaapi: Remove unnecessary ContentDisposition
...
Content-Disposition is only used for communicating the filename. It does
not need to be stored in the database as we have upload_name anyway. It
does not need to be in types.MediaMetadata and does not need to be
logged.
2017-05-26 17:24:13 +02:00
Robert Swain
731c10a418
mediaapi/fileutils: Clean up
...
Reorder functions to have public API functions in alphabetical order at
the top, internal package functions at the bottom in call order.
Use RawURLEncoding to avoid padding the hash with '='.
Use stronger types for paths in public API.
Simplify comments.
2017-05-26 17:15:54 +02:00
Robert Swain
05e88d81cb
mediaapi: Add database storage and upload handler
2017-05-26 16:49:54 +02:00
Robert Swain
e21cd5ae66
Merge pull request #120 from matrix-org/rob/media-skeleton
...
Skeleton for the Media API
2017-05-26 15:57:13 +02:00
Robert Swain
86596488e9
mediaapi/writers/upload: Correct Content-Disposition evaluation
...
Content-Disposition is not a valid request header and so it must be
evaluated from the upload request's filename query parameter.
2017-05-26 15:26:50 +02:00
Robert Swain
98ef88b668
mediaapi/writers/download: Clarify validation applied to Origin
2017-05-26 14:59:45 +02:00
Robert Swain
4dfbae81cd
mediaapi/writers/download: Allow only media IDs matching [A-Za-z0-9_=-]+
2017-05-26 14:55:51 +02:00
Mark Haines
a96b124158
Move calculate state to the state package ( #121 )
2017-05-26 13:51:54 +01:00
Robert Swain
0affdae889
mediaapi/types: Rename member to ActiveRemoteRequests.MXCToCond
...
Clearer that it's a map from mxc URLs to sync.Cond
2017-05-26 14:17:54 +02:00
Robert Swain
e8d3b4648b
mediaapi/routing: Use common.MakeAPI
2017-05-26 13:37:07 +02:00
Robert Swain
2fa0ae29d7
mediaapi/writers: Minor improvements to comments
2017-05-26 10:03:16 +02:00
Robert Swain
a3aaa86ea3
mediaapi: Add initial skeleton
2017-05-26 09:57:09 +02:00
Kegsay
db23640f69
cmd: Add create test accounts command ( #119 )
2017-05-25 17:41:45 +01:00
Mark Haines
84ad4ff9f6
Start implementing /join for room aliases for rooms the server is not in. ( #115 )
...
* Start implementing the join room API
* Hacks to get join room working
* Make the TLS fingerprint configurable
* Fix the client API proxy to handle '#' correctly
* Return a 200 OK response
* Write the join event along with current state to the room server
* Comment on the error handling
* Fix typos
* Fix tab
* Add TODO for moving authEventIDs to gomatrixserverlib
* Comment on why we ignore the key ID argument for local keys
* Avoid 'preceeded'
* Neaten the control flow
* Neaten the control flow even more
* Return pointers
* Rename err to lastErr for the loop
2017-05-25 16:08:28 +01:00
Kegsay
445dce14ae
Add in devices_table to store device information ( #118 )
2017-05-25 13:33:50 +01:00
Mark Haines
e6835660b0
Update gomatrixserverlib
2017-05-24 15:05:42 +01:00
Kegsay
3b9222e8f7
Glue together devices and auth with the current HTTP code ( #117 )
...
- Renamed `clientapi/auth/types` to `clientapi/auth/authtypes` for the same
horrible namespace clashing reasons as `storage`.
- Factored out `makeAPI` to `common`.
- Added in `makeAuthAPI`.
2017-05-23 17:43:05 +01:00
Mark Haines
309300a744
Call 'go build' from the pre-commit hook to check that everything builds ( #116 )
2017-05-23 09:12:59 +01:00
Mark Haines
a7acfa5546
Fix build after #114
2017-05-22 19:28:26 +01:00
Mark Haines
e756b3b0eb
Update gomatrixserverlib
2017-05-22 18:11:30 +01:00