in src/clients/s3_client.py [0:0]
def _filter_request_headers(self, presigned_url, headers={}):
"""
Filter some restricted headers that shouldn't be passed along to s3 when downloading the object.
:param headers: http header from the incoming request
:return: a filtered list of headers
"""
filtered_headers = {}
parsed_url = urllib.parse.urlparse(presigned_url)
parsed_query_params = urllib.parse.parse_qs(parsed_url.query)
signed_headers = set(parsed_query_params.get('X-Amz-SignedHeaders', []))
for header in headers:
if header in self.BLOCKED_REQUEST_HEADERS:
continue
if str(header).lower().startswith('x-amz-') and header not in signed_headers:
continue
filtered_headers[header] = headers[header]
return filtered_headers