AWS Lambda 函数根据请求从 S3 提供文件

Sil*_*hus 6 amazon-web-services python-2.7 aws-lambda aws-api-gateway

我有以下代码

import boto3

def lambda_handler(event, context):
    s3 = boto3.resource('s3')

    bucket = 'bucketName'
    prefix = 'folder1/'
    request = "requestURL"

    return s3.Object(bucket, prefix + request).get()['Body'].read()
Run Code Online (Sandbox Code Playgroud)

我打算将其与 API Gateway 一起使用,以获得一个可以查询并从 S3 提供文件的 URL,如下所示:

function url: http://magic-lambda-function.aws....com/magic这是 API Gateway 提供的 URL。

如果我调用http://magic-lambda-function.aws....com/magic/folder1/folder2/file1,请从 s3_bucket/folder1/folder2/file1 读取 file1 并输出它。

有人尝试过类似的东西吗?预先感谢您的任何帮助。

PS:我无法直接从 S3 提供文件,因为它们的名称包含查询。

E.J*_*nan 3

您不需要 Lambda 函数来执行此操作,您可以使用 AWS API Gateway 并设置服务代理 - 简单得多。AWS 已经(几乎)为您构建了此功能。

http://docs.aws.amazon.com/apigateway/latest/developerguide/integrating-api-with-aws-services-s3.html