From 186e71a46cef1faed389d72b3aa6be2e38a5b73f Mon Sep 17 00:00:00 2001 From: JustAnotherArchivist Date: Fri, 7 Jun 2024 01:51:02 +0000 Subject: [PATCH] Fix encoding of metadata values containing special characters --- ia-upload-stream | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ia-upload-stream b/ia-upload-stream index 540f78b..f3b09f1 100755 --- a/ia-upload-stream +++ b/ia-upload-stream @@ -23,6 +23,7 @@ try: except ImportError: tqdm = None import types +import urllib.parse logger = logging.getLogger() @@ -87,7 +88,7 @@ def metadata_to_headers(metadata): if isinstance(metadata, dict): metadata = metadata.items() for key, value in metadata: - headers[f'x-archive-meta{counters[key]:02d}-{key.replace("_", "--")}'] = value.encode('utf-8') + headers[f'x-archive-meta{counters[key]:02d}-{key.replace("_", "--")}'] = f'uri({urllib.parse.quote(value.encode("utf-8"))})' counters[key] += 1 return headers