def _filter_request_headers()

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