如何将文件上传到 lambda 函数或 API 网关?
How to upload file to lambda function or API Gateway?
我正在尝试将文件从 iOS 上传到 AWS API 网关并将其传递给 Lambda 函数,我该如何实现这种情况?
我可以使用 multipart/form-data 上传到 AWS API 网关,但是如何让输入模型支持二进制数据?
[Edit1] 从 Spektre
的回答中移出
感谢您的回复,经过一些阅读我发现无法将文件上传到 lambda(并且这不合逻辑,因为它是基于事件的)并且是上传到 S3 并使 S3 通知 lambda 的唯一有效用例.
我强烈建议使用 S3
使用 AWS SDKs
之一直接上传。 AWS Lambda
最适合处理事件,而不是上传等内容传输。您可以查看其账单和限额,以更明智地决定它是否真的是您要找的东西。
API Gateway 添加了对 S3 代理的支持。这允许您将文件上传直接公开到 S3。
如果想通过 lambda 上传文件,一种方法是打开您的 AWS API 网关控制台。
转到
"API" -> {你的API} -> "设置"
在那里你会找到“二进制媒体类型”部分。
添加以下媒体类型:
multipart/form-data
保存您的更改。
然后转到“资源”->“代理方法”(例如“任何”)->“方法请求”->“HTTP 请求Headers”并添加以下内容headers” Content-Type", "接受"。
最终部署您的 api。
我正在尝试将文件从 iOS 上传到 AWS API 网关并将其传递给 Lambda 函数,我该如何实现这种情况?
我可以使用 multipart/form-data 上传到 AWS API 网关,但是如何让输入模型支持二进制数据?
[Edit1] 从 Spektre
的回答中移出感谢您的回复,经过一些阅读我发现无法将文件上传到 lambda(并且这不合逻辑,因为它是基于事件的)并且是上传到 S3 并使 S3 通知 lambda 的唯一有效用例.
我强烈建议使用 S3
使用 AWS SDKs
之一直接上传。 AWS Lambda
最适合处理事件,而不是上传等内容传输。您可以查看其账单和限额,以更明智地决定它是否真的是您要找的东西。
API Gateway 添加了对 S3 代理的支持。这允许您将文件上传直接公开到 S3。
如果想通过 lambda 上传文件,一种方法是打开您的 AWS API 网关控制台。
转到
"API" -> {你的API} -> "设置"
在那里你会找到“二进制媒体类型”部分。
添加以下媒体类型:
multipart/form-data
保存您的更改。
然后转到“资源”->“代理方法”(例如“任何”)->“方法请求”->“HTTP 请求Headers”并添加以下内容headers” Content-Type", "接受"。
最终部署您的 api。