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
|
23f0908f38
|
No need for Expires header anymore
|
2016-06-02 18:54:49 +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
|
781687d8a1
|
Migration for adding metadata for root dir to Redis
|
2016-03-07 14:14:07 +01: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
|
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 |
|
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
|
14a522f09f
|
Load bundled environment to access all libraries
|
2016-03-03 00:39:35 +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
|
19f6fcd068
|
Use actual Last-Modified time we get from Swift
|
2016-03-02 14:00:59 +01:00 |
|
Garret Alfert
|
d18de83893
|
Strip trailing whitespace from Swift token
|
2016-03-02 13:59:44 +01:00 |
|
Garret Alfert
|
f1f450cc72
|
Don't add double trailing slash to container URL
The directory name already contains a trailing slash.
|
2016-03-01 22:57:54 +01:00 |
|
Garret Alfert
|
41074e35b3
|
Log usernames for failed migration to separate file
This way they can be easily retried later on.
|
2016-02-29 15:35:37 +01:00 |
|
Garret Alfert
|
33731f793a
|
Set dry_run via environment variable
Can be enabled via `DRYRUN=true`
|
2016-02-24 19:07:26 +01:00 |
|
Garret Alfert
|
3b391246ed
|
Use proper logger for migration script
|
2016-02-24 19:07:15 +01:00 |
|
Garret Alfert
|
570e3dcdb5
|
Set directory backend type during migration
|
2016-02-24 19:06:48 +01:00 |
|
Garret Alfert
|
54176b6928
|
Use data directly from Swift for metadata migration
|
2016-02-22 16:22:38 +01:00 |
|
Garret Alfert
|
5370df9c75
|
Basic migration script using actual RS dir listings
|
2016-02-15 15:15:01 +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
|
d7a71d039f
|
Comment out the Riak settings from example config
|
2016-02-02 01:04:49 +01:00 |
|
Garret Alfert
|
2516e9090e
|
Make Travis only run Swift specs for now
|
2016-02-02 00:57:53 +01:00 |
|
Garret Alfert
|
2e6ad907ef
|
Merge branch 'master' into redis_metadata_storage
|
2016-02-02 00:36:30 +01:00 |
|
Garret Alfert
|
954f046dd9
|
Make Travis install Redis
|
2016-02-02 00:19:15 +01:00 |
|
Garret Alfert
|
536df23336
|
Make Travis create a Swift token file
|
2016-02-02 00:10:47 +01:00 |
|
Garret Alfert
|
409628c9e7
|
Trying to fix specs when run on Travis
|
2016-02-01 18:04:35 +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
|
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
|
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
|
f73c286ce9
|
Purge all keys from redis before every test run
|
2016-01-23 12:34:08 -05:00 |
|
Garret Alfert
|
25c170021e
|
Delete metadata from Redis when deleting objects
|
2016-01-22 16:04:28 -05:00 |
|
Garret Alfert
|
02e5d0b5ab
|
Fix relative path in riak specs
|
2016-01-22 14:49:57 -05:00 |
|
Garret Alfert
|
972378e67f
|
Don't care for order of array when comparing
|
2016-01-22 14:46:41 -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 |
|
Garret Alfert
|
77bd54b009
|
Move old specs into riak subdir
|
2016-01-20 15:32:44 -05:00 |
|
Garret Alfert
|
67ebeb47d8
|
Use new hook-juggler URL in Travis config
Heroku changed their routing using a new domain.
|
2014-10-21 16:06:36 +02: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
|
a6707dd40d
|
Add spec for unescaped special characters
|
2014-02-24 20:44:23 +01: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
|
fd8b2059b2
|
Value for 'Expires' header needs to be a string
|
2013-12-09 01:57:26 +01:00 |
|
Garret Alfert
|
4ae4865de5
|
Set response code for newly created objects to 201
|
2013-12-08 23:22:36 +01:00 |
|
Garret Alfert
|
5ddde402a8
|
Set 'Expires' header to 0 for all responses
|
2013-12-08 22:59:03 +01:00 |
|
Garret Alfert
|
a559f55a6d
|
Change response code for successful DELETE requests from 204 to 200
|
2013-12-08 22:45:03 +01:00 |
|
Garret Alfert
|
96438bac8d
|
Remove ETag header from DELETE requests
|
2013-12-08 22:42:01 +01:00 |
|
Garret Alfert
|
ba3f5db598
|
Change response code for unauthorized access from 403 to 401
|
2013-12-08 22:38:36 +01:00 |
|
Garret Alfert
|
17068f33df
|
Don't write any opslog when count and size didn't change (same file)
|
2013-11-19 19:35:04 +01:00 |
|
Garret Alfert
|
2f95aab874
|
Don't increase opslog count when overwriting existing binary file
|
2013-11-19 19:23:13 +01:00 |
|
Garret Alfert
|
088cd2677c
|
Send ETag header with 304 response as well
|
2013-11-16 13:54:30 +01:00 |
|
Garret Alfert
|
3937862358
|
Use patched riak-ruby-client (closes #32)
The patched version escapes square brackets in the
key and bucket names correctly.
|
2013-11-06 21:56:23 +01:00 |
|
Garret Alfert
|
08a7cddcfe
|
Tell Travis to wait a little longer for riak to start
|
2013-11-01 14:40:39 +01:00 |
|
Garret Alfert
|
48dc081ba5
|
Tell travis to only test master and stable branch
|
2013-11-01 14:01:02 +01:00 |
|
Garret Alfert
|
75b5fda0e9
|
Remove unicorn gem dependency
|
2013-11-01 13:06:06 +01:00 |
|
Garret Alfert
|
256b3c426e
|
Use ETags as version in directory listings
|
2013-10-27 22:29:17 +01:00 |
|
Garret Alfert
|
39dac0a5ed
|
Remove some duplication
|
2013-10-27 22:29:17 +01:00 |
|
Garret Alfert
|
a470b37c2c
|
Allow to expose ETag header via CORS
|
2013-10-27 22:29:06 +01:00 |
|
Garret Alfert
|
2a2cc0a3ec
|
Allow If-Match and If-None-Match headers via CORS
|
2013-10-27 22:28:43 +01:00 |
|
Garret Alfert
|
b907f02f37
|
Specs for ETag headers for binary files
|
2013-10-27 22:28:05 +01:00 |
|
Garret Alfert
|
5215cdc5e0
|
Spec for updating ETags of all parent directories on delete
|
2013-10-27 22:27:19 +01:00 |
|
Garret Alfert
|
3b5f99ee0d
|
Refactor
|
2013-10-27 22:26:50 +01:00 |
|