Commit Graph

120 Commits

Author SHA1 Message Date
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
Greg Karékinian 0e10f3b6ff Change the way to load the Redis config to allow clusters 2016-02-02 22:20:38 +00: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 9ba85446ef Use parentheses to fix syntax warnings 2016-02-01 15:00:39 +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 4ca67c7ea9 Do collision detection via Redis metadata 2016-01-28 19:15:50 +01:00
Garret Alfert 4e7c8f68bb Add missing arguments to method call 2016-01-28 17:48:20 +01:00
Garret Alfert d973771192 Remove some duplication 2016-01-26 20:33:43 +01:00
Garret Alfert 0745354b8a Retrieve directory listing from Redis via Lua 2016-01-26 20:32:29 +01:00
Garret Alfert 737be34e73 Configure the source of dir listing (redis or swift) 2016-01-26 20:21:45 +01:00
Garret Alfert 15196ca4b9 Check IF_NONE_MATCH header for directory listings 2016-01-23 14:29:37 -05:00
Garret Alfert bec9f7a6cc Set ETag header for directory listings 2016-01-23 14:29:18 -05:00
Garret Alfert c676c1a6a8 Add metadata entry for root directory 2016-01-23 14:28:14 -05:00
Garret Alfert 599865cf3f Generate directory listing from Redis metadata 2016-01-23 13:26:38 -05:00
Garret Alfert dfc8a59096 Fix redis keys and content for nested directories 2016-01-23 13:20:42 -05:00
Garret Alfert 25c170021e Delete metadata from Redis when deleting objects 2016-01-22 16:04:28 -05:00
Garret Alfert 189d04af25 Save list of directory items in redis 2016-01-20 17:27:00 -05:00
Garret Alfert cd2c0865e8 Save directory metadata in redis (WIP) 2016-01-20 15:53:22 -05:00
Garret Alfert 990ea9cf28 Save object metadata in redis 2016-01-20 15:33:35 -05:00
Greg Karékinian a026d18e02 Fix uploads to root directory
The `url_for_key` method returned a double slash because `directory` is
an empty string when uploading to the root directory

Refs #70
2015-11-16 16:52:54 +01:00
Greg Karékinian ad687839b0 Send token to Sentry for debugging purposes 2015-09-30 16:04:43 +02:00
Greg Karékinian 6f3b688b84 Reload token when it was read from file more than 1 hour ago 2015-09-28 17:15:03 +02:00
Greg Karékinian e07b763e22 Fix a regression with ETag and If-None-Match 2015-06-30 15:05:11 +02:00
Greg Karékinian 8c30bdcce5 Really fix the directory listing for a user's root 2015-06-30 14:59:07 +02:00
Greg Karékinian 87741d002a Generate an ETag for a container's root 2015-06-30 14:06:40 +02:00
Greg Karékinian 0e450c5e5c Fix root directory listing
It was flattened by accident

Refs #62
2015-06-29 21:21:58 +02:00
Greg Karékinian 1cf99377dc Fix listing of a user's root directory
Refs #62
2015-06-29 18:27:00 +02:00
Greg Karékinian f5adc5f31d Escape directory and key for the URI in Swift provider 2015-05-04 22:38:25 +02:00
Greg Karékinian 3b326d6dbf Add Sentry for exception tracking 2015-04-29 20:13:04 +02:00
Greg Karékinian 35c04f85e4 Add a Swift remoteStorage provider 2015-04-29 20:13:04 +02:00
Greg Karékinian bbb1bc0af0 Merge branch 'fix_empty_file_response' 2015-03-14 15:48:15 +01:00
Greg Karékinian 0f1f445e7f Always cast the Content-Length header into a string
Fixes a crash in Rainbows, when a header is set to a Fixnum/Integer.

Refs #53
2015-03-13 11:22:05 +01:00
Greg Karékinian a15635ce38 Fix a bug when a document has an empty body
Add check on content length for an empty file
2015-03-12 21:51:37 +01:00
Garret Alfert 8e355ba532 Respond with 409 on naming collisions between documents and folders 2014-09-23 17:59:28 +02:00
Garret Alfert 1603d3d2ff Merge branch 'master' into rs_spec_02
Conflicts:
	lib/remote_storage/riak.rb
	spec/directories_spec.rb
2014-09-23 17:58:21 +02:00
Garret Alfert 9e6cc6178d Don't choke on colons in directory names (fixes #39) 2014-02-24 17:43:43 +01:00
Garret Alfert ed4152095b Code formatting 2014-01-09 23:58:20 +01:00
Garret Alfert 270ac1442e If-None-Match header may contain multiple revisions 2014-01-09 23:51:05 +01:00
Garret Alfert 38e69f1423 Last-Modified header is not needed anymore 2014-01-09 21:00:13 +01:00
Garret Alfert 8073eec851 HEAD requests for directory listings 2014-01-09 20:03:34 +01:00
Garret Alfert f8b1ad730a HEAD requests for documents 2014-01-09 19:26:36 +01:00
Garret Alfert 6d86fa516a Set Content-Length header for documents on GET 2014-01-08 23:27:07 +01:00
Garret Alfert 75e52f3e9a New directory listing format 2014-01-08 21:41:01 +01:00
Garret Alfert 4ae4865de5 Set response code for newly created objects to 201 2013-12-08 23:22:36 +01:00