Merge "fix: improperly encoded object names"

This commit is contained in:
Zuul 2022-05-05 22:28:19 +00:00 committed by Gerrit Code Review
commit fd6bf15676

View File

@ -591,7 +591,10 @@ class Proxy(proxy.Proxy):
# TODO(mordred) Collect etags from results to add to this manifest # TODO(mordred) Collect etags from results to add to this manifest
# dict. Then sort the list of dicts by path. # dict. Then sort the list of dicts by path.
manifest.append(dict( manifest.append(dict(
path='/{name}'.format(name=name), # While Object Storage usually expects the name to be
# urlencoded in most requests, the SLO manifest requires
# plain object names instead.
path='/{name}'.format(name=parse.unquote(name)),
size_bytes=segment.length)) size_bytes=segment.length))
# Try once and collect failed results to retry # Try once and collect failed results to retry
@ -731,7 +734,9 @@ class Proxy(proxy.Proxy):
continue continue
name = self._object_name_from_url(result.url) name = self._object_name_from_url(result.url)
for entry in manifest: for entry in manifest:
if entry['path'] == '/{name}'.format(name=name): if entry['path'] == '/{name}'.format(
name=parse.unquote(name)
):
entry['etag'] = result.headers['Etag'] entry['etag'] = result.headers['Etag']
def get_info(self): def get_info(self):