Best Python code snippet using localstack_python
s3_utils.py
Source:s3_utils.py
...132 """133 Get bucket name for addressing style host for website hosting134 """135 return "%s.%s:%s" % (bucket_name, S3_STATIC_WEBSITE_HOSTNAME, config.EDGE_PORT)136def get_forwarded_for_host(headers):137 x_forwarded_header = re.split(r",\s?", headers.get("X-Forwarded-For", ""))138 host = x_forwarded_header[len(x_forwarded_header) - 1]139 return host140def is_real_s3_url(url):141 return re.match(r".*s3(\-website)?\.([^\.]+\.)?amazonaws.com.*", url or "")142def is_expired(expiry_datetime):143 now_datetime = datetime.datetime.now(tz=expiry_datetime.tzinfo)144 return now_datetime > expiry_datetime145def authenticate_presign_url(method, path, headers, data=None):146 url = "{}{}".format(config.get_edge_url(), path)147 parsed = urlparse.urlparse(url)148 query_params = parse_qs(parsed.query)149 forwarded_for = get_forwarded_for_host(headers)150 if forwarded_for:151 url = re.sub("://[^/]+", "://%s" % forwarded_for, url)152 LOGGER.debug("Received presign S3 URL: %s" % url)153 sign_headers = {}154 query_string = {}155 is_v2 = all([p in query_params for p in SIGNATURE_V2_PARAMS])156 is_v4 = all([p in query_params for p in SIGNATURE_V4_PARAMS])157 # Add overrided headers to the query string params158 for param_name, header_name in ALLOWED_HEADER_OVERRIDES.items():159 if param_name in query_params:160 query_string[param_name] = query_params[param_name][0]161 # Request's headers are more essentials than the query parameters in the request.162 # Different values of header in the header of the request and in the query parameter of the163 # request URL will fail the signature calulation. As per the AWS behaviour...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!