17

我正在尝试将文件从 iOS 上传到 AWS API Gateway 并将其传递给 Lambda 函数,我该如何实现这个场景?

我可以使用multipart/form-data上传到 AWS API Gateway 但如何使输入模型支持二进制数据?

[Edit1] 从 Spektre 的回答中移出

感谢您的回复,经过一番阅读,我发现无法将文件上传到 lambda(这不合逻辑,因为它是基于事件的),并且是上传到 S3 并使 S3 通知 lambda 的唯一有效用例。

4

3 回答 3

19

我强烈建议S3使用AWS SDKs. AWS Lambda最适合处理事件,而不是像上传这样的内容传输。您可以查看它的计费和限制,以更明智地决定它是否真的是您正在寻找的东西。

于 2015-07-27T18:05:41.073 回答
11

API Gateway 增加了对 S3 代理的支持。这允许您将文件上传直接公开到 S3。

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

于 2017-01-18T17:48:12.987 回答
4

如果想通过 lambda 上传文件,一种方法是打开您的 AWS API Gateway 控制台。

“API” -> {YourAPI} -> “设置”

在那里你会找到“二进制媒体类型”部分。

添加以下媒体类型:

多部分/表单数据

保存您的更改。

然后转到“资源”->“代理方法”(例如“ANY”)->“方法请求”->“HTTP 请求标头”并添加以下标头“Content-Type”、“接受”。

最后部署你的 api。

有关更多信息,请访问:https ://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-payload-encodings-configure-with-console.html

于 2020-07-09T16:02:50.003 回答