如何将文件上传到lambda函数或API网关?

时间:2015-07-27 04:53:33

标签: ios amazon-web-services aws-lambda aws-api-gateway

我尝试将文件从iOS上传到AWS API网关并将其传递给Lambda函数,我该如何实现这种情况?

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

[Edit1]已从Spektre的回答

移出

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

3 个答案:

答案 0 :(得分:12)

我强烈建议您使用其中一个S3直接上传AWS SDKsAWS Lambda适合处理短事件,而非上传等内容传输。您可以查看其结算和限额,以便做出更明智的决定,看看它是否真的是您正在寻找的。

答案 1 :(得分:9)

API Gateway已添加对S3代理的支持。这允许您直接将文件上传到S3。

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

答案 2 :(得分:0)

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

转到

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

您将在其中找到“二进制媒体类型”部分。

添加以下媒体类型:

multipart / form-data

保存您的更改。

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

最后部署您的api。

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