【发布时间】:2016-06-06 18:09:31
【问题描述】:
我将 Amazon API Gateway 配置为 S3 存储桶的代理。理想情况下,我希望客户端能够将文件发布到存储桶,让 S3 为其分配文件名,然后在响应中返回该名称。我不想让客户能够指定文件名。这可能吗?设置代理的文档根本没有提到 POST,我发现的其他 POST 示例仍然需要客户端指定密钥名称。
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-api-gateway
我将 Amazon API Gateway 配置为 S3 存储桶的代理。理想情况下,我希望客户端能够将文件发布到存储桶,让 S3 为其分配文件名,然后在响应中返回该名称。我不想让客户能够指定文件名。这可能吗?设置代理的文档根本没有提到 POST,我发现的其他 POST 示例仍然需要客户端指定密钥名称。
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-api-gateway
不,S3 不支持自动生成文件名。
【讨论】:
S3 无法分配名称,但在 API 网关映射模板中,您可以使用 $context 对象中的任何数据来构造名称。
例如$context.requestId 将为您的 S3 密钥创建一个唯一的密钥名称。
【讨论】:
如果您使用 Lambda,您可以插入任何您想要的自定义逻辑,当然包括生成文件名。然后 Lambda 函数可以通过返回文件名,您可以将其映射到您的 API Gateway 响应。
【讨论】: