diff --git a/config.yml.example b/config.yml.example index f0ed36d..5f65092 100644 --- a/config.yml.example +++ b/config.yml.example @@ -20,6 +20,7 @@ development: &defaults # redis: # host: localhost # port: 6379 + # use_redis_dir_listing: true test: <<: *defaults diff --git a/lib/remote_storage/swift.rb b/lib/remote_storage/swift.rb index 2581ab5..80a8406 100644 --- a/lib/remote_storage/swift.rb +++ b/lib/remote_storage/swift.rb @@ -75,6 +75,14 @@ module RemoteStorage end def get_directory_listing(user, directory) + if settings.use_redis_dir_listing + get_directory_listing_from_redis(user, directory) + else + get_directory_listing_from_swift + end + end + + def get_directory_listing_from_redis(user, directory) etag = redis.hget "rs_meta:#{user}:#{directory}/", "etag" none_match = (server.env["HTTP_IF_NONE_MATCH"] || "").split(",").map(&:strip)