From dfc8a5909642b21226ec898ce35c4d4ea73ec995 Mon Sep 17 00:00:00 2001 From: Garret Alfert Date: Sat, 23 Jan 2016 13:20:42 -0500 Subject: [PATCH] Fix redis keys and content for nested directories --- lib/remote_storage/swift.rb | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/remote_storage/swift.rb b/lib/remote_storage/swift.rb index 913f683..58a6a5f 100644 --- a/lib/remote_storage/swift.rb +++ b/lib/remote_storage/swift.rb @@ -265,9 +265,17 @@ module RemoteStorage parent_directories end + def top_directory(directory) + if directory.match(/\//) + directory.split("/").last + elsif directory != "" + return directory + end + end + def parent_directory_for(directory) if directory.match(/\//) - return directory[0..directory.rindex("/")-1] + return directory[0..directory.rindex("/")] elsif directory != "" return "/" end @@ -277,6 +285,8 @@ module RemoteStorage redis_key = "rs_meta:#{user}:#{directory}/#{key}" redis.hmset(redis_key, *metadata) redis.sadd "rs_meta:#{user}:#{directory}/:items", key + + true end def update_dir_objects(user, directory) @@ -288,7 +298,7 @@ module RemoteStorage key = "rs_meta:#{user}:#{dir}/" metadata = {etag: res.headers[:etag], modified: timestamp} redis.hmset(key, *metadata) - redis.sadd "rs_meta:#{user}:#{parent_directory_for(dir)}:items", "#{dir}/" + redis.sadd "rs_meta:#{user}:#{parent_directory_for(dir)}:items", "#{top_directory(dir)}/" end true