增加Amazon API Gateway的最大POST大小

12

我打算使用AWS API Gateway和Lambda通过HTML表单的POST方式将文件上传到S3。

然而,如果文件足够大,则API Gateway端点会失败,并显示消息[HTTP内容长度超过10485760字节]。

您是否知道任何增加此限制的方法?

无论API方法是否隐藏Lambda函数或仅为模拟方法,情况都是相同的。

2个回答

12

目前还没有办法增加这个限制。

此外,API网关目前还没有针对向S3传输二进制文件进行过优化。我们已经收到其他客户的请求,并可能在将来添加支持。

更新2017-02-19:虽然仍然没有办法增加有效载荷大小限制,但是API Gateway现在支持二进制数据


1
你在使用API Gateway前端S3的过程中有没有做出任何更改? - Adrian Ivan
1
很遗憾,这方面没有任何变化。 - Bob Kinney
您可以从API网关使用WebSockets并流式传输数据,或者从S3生成预签名URL并使用它上传。 - Mojimi

1
你可以使用S3 API中提供的多部分上传功能。

https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html

您需要添加三个端点来启动进程,上传一个块并完成进程。还要考虑添加中止例程。
在客户端,您需要将文件分成段,然后异步上传它们。
这使得API Gateway的每个帖子都限制在10MB以下。显然,您无法使用标准的html表单进行操作,需要一些javascript处理来分块文件并处理异步请求。
或者,您可以绕过网关直接发布到S3 Rest API。但是,您将失去网关的好处并引入一些安全风险。

https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html


1
您可以生成一个预签名的S3 URL来上传文件。并使用Lambda和S3事件来执行基于文件的某些操作。 - Mojimi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接