11

我打算使用 AWS API Gateway 和 Lambda 通过 HTML 表单中的 POST 将文件上传到 S3。但是,如果文件足够大,API 网关端点将失败,并显示消息 [HTTP 内容长度超过 10485760 字节。]。

您碰巧知道增加此限制的任何方法吗?

无论 API 方法是隐藏 Lambda 函数还是只是一个模拟方法,都是一样的。

4

2 回答 2

10

目前没有办法提高这个限制。

此外,API Gateway 目前未优化以支持向 S3 的二进制传输。这是我们从其他客户那里听到的请求,我们可能会在未来增加对此的支持。

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

于 2015-11-19T21:07:59.027 回答
0

您可以使用 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

于 2018-08-29T21:54:38.503 回答