# HG changeset patch # User Kim Alvefur # Date 1701516036 -3600 # Node ID 32bc648e38925cb1e1e2f3c6ed69bc12c0c98ec4 # Parent 08a63586220160e9ce82d95c532008e2bfe4c50c mod_storage_s3: Fix passing of prefixes, should not be urlencoded diff -r 08a635862201 -r 32bc648e3892 mod_storage_s3/mod_storage_s3.lua --- a/mod_storage_s3/mod_storage_s3.lua Sat Dec 02 11:48:19 2023 +0100 +++ b/mod_storage_s3/mod_storage_s3.lua Sat Dec 02 12:20:36 2023 +0100 @@ -175,7 +175,7 @@ function keyval:users() local bucket_path = url.build_path({ is_absolute = true; bucket; is_directory = true }); - local prefix = url.build_path({ jid.escape(module.host); is_directory = true }); + local prefix = jid.escape(module.host) .. "/"; local list_result, err = async.wait_for(new_request(self, "GET", bucket_path, { prefix = prefix })) if err or list_result.code ~= 200 then return nil, err; @@ -238,7 +238,7 @@ function archive:find(username, query) local bucket_path = url.build_path({ is_absolute = true; bucket; is_directory = true }); - local prefix = { jid.escape(module.host); jid.escape(username or "@"); jid.escape(self.store); is_directory = true }; + local prefix = { jid.escape(module.host); jid.escape(username or "@"); jid.escape(self.store) }; if not query then query = {}; end @@ -250,7 +250,7 @@ end end - prefix = url.build_path(prefix); + prefix = table.concat(prefix, "/").."/"; local list_result, err = async.wait_for(new_request(self, "GET", bucket_path, { prefix = prefix; ["max-keys"] = query["max"] and tostring(query["max"]);