From 7585e98fd72a07ad6cb2745e033c22a1b164bd8e Mon Sep 17 00:00:00 2001 From: Nikolaus Rath Date: Sun, 9 Sep 2018 14:55:55 +0100 Subject: [PATCH] Fix bug in AWS Signature calculation The query string needs to be quoted slightly differently. --- src/s3ql/backends/s3.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/s3ql/backends/s3.py b/src/s3ql/backends/s3.py index 239d8948f..9d2ec0ca3 100644 --- a/src/s3ql/backends/s3.py +++ b/src/s3ql/backends/s3.py @@ -181,11 +181,12 @@ def _authorize_request(self, method, path, headers, subres, query_string): auth_strs.append(urllib.parse.quote(path)) if query_string: - s = urllib.parse.urlencode(query_string, doseq=True).split('&') + s = urllib.parse.urlencode(query_string, doseq=True, + quote_via=urllib.parse.quote).split('&') else: s = [] if subres: - s.append(urllib.parse.quote_plus(subres) + '=') + s.append(urllib.parse.quote(subres) + '=') if s: s = '&'.join(sorted(s)) else: