Garret Alfert
|
533c9b6346
|
Set Content-type header on HEAD requests
Fixes #121
|
2018-05-22 11:59:55 +02:00 |
|
Greg Karékinian
|
639c3724f0
|
Refactor the put_request method to have a return value
|
2018-05-09 16:01:14 +02:00 |
|
Greg Karékinian
|
709f63555d
|
Rewrite to avoid long lines
|
2018-05-09 15:55:00 +02:00 |
|
Greg Karékinian
|
0ec76c8140
|
Fix coding style for a hash
|
2018-05-09 15:26:32 +02:00 |
|
Greg Karékinian
|
f14ef4dc21
|
Consider that the metadata has changed when the Last-Modified changes
Also adds a spec for it
|
2018-04-30 16:39:12 +02:00 |
|
Greg Karékinian
|
ca0127d6a6
|
Rename the S3 provider to just S3
|
2018-04-30 15:46:18 +02:00 |
|
Greg Karékinian
|
1532a23d29
|
Reorder the argument in authorization_headers_for
Make content_type and md5 optional (set to nil by default)
|
2018-04-30 15:30:16 +02:00 |
|
Greg Karékinian
|
97cd5ec837
|
Move a comment to the relevant line
|
2018-04-30 15:15:04 +02:00 |
|
Greg Karékinian
|
3b72b8d0bb
|
Pass the headers to the set_response_headers directly, not the response
|
2018-04-30 15:12:53 +02:00 |
|
Greg Karékinian
|
b00fc5bee2
|
Reverse the not found logic in the delete_data method to make it clearer
|
2018-04-30 15:10:55 +02:00 |
|
Greg Karékinian
|
21dad2aba7
|
Get the metadata from Redis on a HEAD request
No need to hit the storage backend, we can set the response headers from
the data in Redis
|
2018-04-26 13:17:43 +02:00 |
|
Greg Karékinian
|
7bd45543f6
|
Set headers from the Redis metadata on a GET that results in a 304
Also add specs to check for the response headers
|
2018-04-26 13:17:43 +02:00 |
|
Greg Karékinian
|
f083022e6d
|
Get the ETag from Redis on a GET request
This prevents doing a network request when we would return a 304 anyway
|
2018-04-26 13:17:43 +02:00 |
|
Greg Karékinian
|
86dc45f444
|
Add support for S3 through the REST API
This is currently using the old S3 authentication
(https://s3.amazonaws.com/doc/s3-developer-guide/RESTAuthentication.html),
in order to support Exoscale Storage
Refs #112
|
2018-04-26 13:17:43 +02:00 |
|
Greg Karékinian
|
ac6bec48c4
|
Remove all Riak code and its dependencies
Closes #75
|
2018-04-16 11:54:32 +02:00 |
|
|
60c508fba9
|
Add Last-Modified date to document items in listings
Not in RS spec draft yet, see https://github.com/remotestorage/spec/issues/158 for discussion.
|
2018-03-12 16:32:00 +02:00 |
|
Greg Karékinian
|
3ddcccaee7
|
Handle the case of a PUT on a non-existing object
The previous code was returning a 500 because the HEAD request failed
|
2018-01-05 13:11:47 +01:00 |
|
Garret Alfert
|
2fac808343
|
Split list of ETAGs before removing Weak indicator
|
2018-01-05 06:55:46 +01:00 |
|
Garret Alfert
|
18670021b1
|
Handle out of sync metadata in Redis on PUTs
When the IF-MATCH comparison fails, we check the actual metadata on
the Swift server to be sure.
|
2018-01-05 06:49:42 +01:00 |
|
Garret Alfert
|
24ae9ad893
|
Allow for weak ETAGs with leading quote
The remoteStorage client currently surrounds all ETAGs with quotes, so
instead of W\"etag" it looks like "W\"etag".
|
2018-01-03 22:06:03 +01:00 |
|
Garret Alfert
|
8ffd15bb61
|
Ignore weak ETAG prefix when comparing MATCH headers
Our metadata only contains the actual ETAG value, so we need
to use only that when comparing it.
|
2018-01-03 21:31:25 +01:00 |
|
Greg Karékinian
|
c1ed996b1d
|
Only send the first 20 characters of the token
|
2016-10-19 15:05:30 +02:00 |
|
Greg Karékinian
|
be43a7474a
|
Remove line break from the token file when loading it
|
2016-10-18 18:03:02 +02:00 |
|
Garret Alfert
|
35abddc4ea
|
Remove container migration checks
|
2016-09-12 11:49:23 +02:00 |
|
Garret Alfert
|
74428408b1
|
Use new Redis migration hash in Liquor Cabinet itself
|
2016-09-07 18:13:52 +02:00 |
|
Garret Alfert
|
90a6753d88
|
Use container path directly, instead of hiding it behind a method
|
2016-09-06 16:36:43 +02:00 |
|
Garret Alfert
|
e6fa6ca586
|
User proper container and path based on migration state
|
2016-09-05 18:27:35 +02:00 |
|
Garret Alfert
|
c79b86bff5
|
Change Redis key for container migration
|
2016-09-02 16:41:36 +02:00 |
|
Garret Alfert
|
fdc819d53d
|
Determine which container to use from Redis
|
2016-09-02 15:15:48 +02:00 |
|
Garret Alfert
|
49ec6effa7
|
Remove unused method
|
2016-09-02 15:10:01 +02:00 |
|
|
8ad882d5ab
|
If user container doesn't exist, use shared container
|
2016-09-01 18:12:52 +02:00 |
|
|
6448642477
|
Return 503 for PUT/DELETE during user migration
|
2016-09-01 17:14:42 +02:00 |
|
Greg Karékinian
|
b68c5d8409
|
Merge pull request #94 from 5apps/feature/86-respond_with_201_on_create
Respond with status 201 when creating new objects
|
2016-08-08 14:47:07 +02:00 |
|
Garret Alfert
|
7a8694fd55
|
Respond with status 201 when creating new objects
closes #86
|
2016-08-05 17:43:47 +02:00 |
|
Garret Alfert
|
5891cb9cf0
|
Make sure to delete existing metadata on DELETE
fixes #80
|
2016-08-05 17:17:59 +02:00 |
|
Greg Karékinian
|
74063a3f66
|
Reload swift token from file every 30 minutes
We have seen requests fail because of an expired token that was loaded
from file less than an hour ago
|
2016-07-23 11:30:55 +02:00 |
|
Greg Karékinian
|
ad0ea12059
|
Return 401 when getting an empty bearer token
For example:
Authorization: Bearer
The cause of the empty bearer also needs to be investigated
|
2016-07-20 17:27:44 +02:00 |
|
Garret Alfert
|
995ba52886
|
Log user's storage size in Redis
|
2016-06-13 13:18:10 +02:00 |
|
Garret Alfert
|
28b6a7f22d
|
Merge branch 'master' into feature/update_to_recent_rs_spec
# Conflicts:
# spec/swift/app_spec.rb
|
2016-06-02 22:21:16 +02:00 |
|
Garret Alfert
|
16e51038b1
|
Send ETag of deleted item in header
|
2016-06-02 18:56:45 +02:00 |
|
Garret Alfert
|
ed8061b594
|
Use content type "application/ld+json" for directory listings
|
2016-06-02 18:54:47 +02:00 |
|
Garret Alfert
|
c897959029
|
Send "Precondition Failed" message body with 412 responses
|
2016-06-02 18:49:44 +02:00 |
|
Garret Alfert
|
cc91b5c4cd
|
Send "Not Found" message body with 404 responses (refs #42)
|
2016-06-02 13:19:06 +02:00 |
|
Garret Alfert
|
83d8f29a04
|
Send "Conflict" message body with 409 responses (closes #409)
|
2016-06-02 13:18:59 +02:00 |
|
Garret Alfert
|
9a9a9c79e5
|
Send "Unauthorized" message body with 401 responses (refs #42)
|
2016-06-02 13:18:51 +02:00 |
|
Garret Alfert
|
1d39445ba9
|
Fix deleting metadata for empty subdirectories
|
2016-03-04 22:17:33 +01:00 |
|
Garret Alfert
|
5378826c6a
|
Also use content checksum for ETag calculation
Timestamp is not enough, as it might be the same
for two consequent PUTs.
|
2016-03-04 22:17:25 +01:00 |
|
Garret Alfert
|
3590b7dedc
|
Determine correct metadata key for objects in root dir
|
2016-03-04 20:47:41 +01:00 |
|
Garret Alfert
|
1c0bd18915
|
Delete obsolete method
|
2016-03-04 20:34:48 +01:00 |
|
Garret Alfert
|
43ff83d26b
|
Don't allow PUTS with Content-Range header
|
2016-03-04 19:33:00 +01:00 |
|