我打算使用AWS API Gateway& Lambda通过HTML从HTML表单执行文件上传到S3。 但是,如果文件足够大,API网关端点将失败,并显示消息[HTTP内容长度超过10485760字节。]。
您是否碰巧知道如何增加此限制?
无论API方法隐藏Lambda函数还是简单的模拟方法,都是一样的。
答案 0 :(得分:7)
目前无法增加此限制。
此外,API Gateway目前尚未优化以支持二进制传输到S3。这是我们从其他客户那里听到的请求,我们可能会在将来添加对此的支持。
更新2017-02-19:虽然仍无法增加有效负载大小限制,但API网关现在会support binary data。
答案 1 :(得分: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