Greg Karékinian
1824766a03
Implement Range support for the Swift provider, with specs
2020-01-06 14:03:26 +01:00
Greg Karékinian
be33b0e195
Replace placeholder comment that I forgot to replace
2018-05-09 19:08:32 +02:00
Greg Karékinian
df65190df8
Simply the request stubs, add comments
...
Remove the stubs that are not required, making everything easier to
understand
2018-05-09 18:42:04 +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
5da0d0b5c3
Delete unused methods
2018-04-30 15:44:49 +02:00
Greg Karékinian
454f02dfaf
Rename the spec root description
2018-04-30 15:44:28 +02:00
Greg Karékinian
21f3a9f60f
Remove all duplication the specs
...
S3 and Swift now run the same specs. The only difference is the before
block that defines the stubbed HTTP requests and the responses from the
Swift and S3 servers
2018-04-26 13:17:43 +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
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
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
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
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
c1d60586ec
Improve some spec wordings
2016-06-03 01:08:52 +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
a349db5243
Spec for directory listing of non-existing directories
2016-06-02 18:57:40 +02:00
Garret Alfert
576e4a9afb
Specs for response headers on GET requests
2016-06-02 18:57:37 +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
df87deaf0b
Don't fail when order of array is different
2016-03-04 22:48:50 +01:00
Garret Alfert
648f86e0f3
Fix typo in specs
2016-03-04 22:40:04 +01: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
43ff83d26b
Don't allow PUTS with Content-Range header
2016-03-04 19:33:00 +01:00
Garret Alfert
fd3293025d
ETags are quoted, doh
2016-03-04 19:32:36 +01:00
Garret Alfert
d08bc45489
Don't use or create any directory objects in Swift
2016-03-04 15:33:28 +01:00
Garret Alfert
9b7b224f79
Use more explicit key name for items
2016-03-02 18:06:42 +01:00
Garret Alfert
c2fd9bc6d0
Change Redis metadata key prefix to rs:m
2016-03-02 18:04:38 +01:00
Garret Alfert
88f2dceb27
Use single letters for Redis metadata keys
...
Saves 16 characters per document object and 10
characters per directory object
2016-03-02 15:00:33 +01:00
Garret Alfert
650da91a1d
Shorten Redis metadata keys
...
Use rsm:<username>:<dir>:i instead of
rs_meta:<username>:<dir>:items
2016-03-02 14:43:28 +01:00
Garret Alfert
067f4a1553
Use shorter Redis key for dir backend config
...
rsc:db:username instead of rs_config:dir_backend:username
2016-03-02 14:33:48 +01:00
Garret Alfert
ff25b40385
Save last modified timestamp for objects as well
2016-03-02 14:05:53 +01:00
Garret Alfert
c730333143
Don't try to do put or delete requests to root dir in order to update etag
2016-02-02 18:07:12 +01:00
Garret Alfert
7084a50d1b
Make dir_empty? method use Redis metadata
2016-01-29 16:45:17 +01:00
Garret Alfert
573dadf365
Respond with 503 when directory backend is locked
2016-01-29 16:18:49 +01:00
Garret Alfert
a4673e9661
Use directory backend config from redis instead of config file
2016-01-29 16:18:09 +01:00
Garret Alfert
16dcc56fba
No need to stub has_name_collision? anymore
2016-01-29 15:16:24 +01:00
Garret Alfert
4ca67c7ea9
Do collision detection via Redis metadata
2016-01-28 19:15:50 +01:00
Garret Alfert
15196ca4b9
Check IF_NONE_MATCH header for directory listings
2016-01-23 14:29:37 -05:00