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