Normally S3 objects in localstack can be accessed via `http://localhost:4572/bucket/key`.

However, if the object is 7 MBs or larger, attempting to access it via this URL will result in a 403 error. Objects any smaller are retrieved as expected.

(Possibly related: Lambda response size is limited to 6MB. Perhaps that is being used by accident?)
pattern = 'arn:aws:dynamodb:%s:%s:table/%s'
    return _resource_arn(table_name, pattern, account_id=account_id, region_name=region_name)
def dynamodb_stream_arn(table_name, latest_stream_label, account_id=None):
    account_id = get_account_id(account_id)
    return ('arn:aws:dynamodb:%s:%s:table/%s/stream/%s' %
        (get_region(), account_id, table_name, latest_stream_label))
def lambda_function_arn(function_name, account_id=None):
    return lambda_function_or_layer_arn('function', function_name, account_id=account_id)
def lambda_layer_arn(layer_name, version=None, account_id=None):
    return lambda_function_or_layer_arn('layer', layer_name, version=None, account_id=account_id)
def lambda_function_or_layer_arn(type, entity_name, version=None, account_id=None):
    pattern = 'arn:aws:lambda:.*:.*:(function|layer):.*'
    if re.match(pattern, entity_name):
        return entity_name
    if ':' in entity_name:
        raise Exception('Lambda %s name should not contain a colon ":": %s' % (type, entity_name))
    account_id = get_account_id(account_id)
    pattern = re.sub(r'\([^\|]+\|.+\)', type, pattern)
    result = pattern.replace('.*', '%s') % (get_region(), account_id, entity_name)
    if version:
        result = '%s:%s' (result, version)
    return result
def lambda_function_name(name_or_arn):
    if ':' not in name_or_arn:
        return name_or_arn
    parts = name_or_arn.split(':')
    
    return parts[6]
def state_machine_arn(name, account_id=None, region_name=None):