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!!
