AWS API Gateway和Lambda可以将映像上传并下载到s3

时间:2019-11-28 07:03:44

标签: javascript node.js amazon-s3 aws-lambda aws-api-gateway

我创建了一个lambda,用于将图像上传和下载到s3。

我面临的问题是我在API网关的代理集成方面苦苦挣扎。

检查文档和有关Gateway and Lambda to Return Image的问题后,我可以使上传工作或下载工作,但不能同时进行:(

如果我在serverless.yml文件的apiGateway文件中的apiGateway的binaryMediaTypes中添加-*/*,如链接栈溢出问题中所建议,我可以进行下载,但随后我的上载功能停止了...(返回502)

如果我不添加此*/*,则可以上传,但无法下载...

我尝试通过不同的方式进行上传,例如以形式或在主体中以base64字符串形式添加文件,这两种方法都无需使用*/*,但是当*/*添加了...

我找不到其他方式来使下载正常运行,而不会破坏上传部分...

有任何线索吗?

(obs1:我在下载返回obj中将内容类型设置为“ image / jpeg”)

(obs2:我知道您可以直接从s3下载图像,但是我在lambda上实现了一些逻辑来决定应提供哪个图像,因此我想通过lambda来做到这一点)

这是serverless.yml文件中有关网关的部分:

1 个答案:

答案 0 :(得分:0)

通过Lambda从s3上传和下载图像的最好方法是预先签名的URL。

使用lambda创建预签名URL