【问题标题】:Increase maximum POST size for Amazon API Gateway增加 Amazon API Gateway 的最大 POST 大小
【发布时间】:2018-08-30 05:54:38
【问题描述】:

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

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

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

【问题讨论】:

    标签: post amazon-web-services size aws-api-gateway aws-lambda


    【解决方案1】:

    目前无法提高此限制。

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

    2017 年 2 月 19 日更新:虽然仍然无法增加有效负载大小限制,但 API Gateway 现在可以support binary data

    【讨论】:

    • 自从您在使用 API Gateway 前置 S3 上发布答案后是否有任何变化?
    • @AdrianIvan 不幸的是,这没有改变。
    • 您可以使用来自 api 网关的 websockets 和流数据,或者从 s3 生成一个预签名的 url 并使用它上传。
    【解决方案2】:

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

    【讨论】:

    • 你可以生成一个预签名的 s3 url 来上传。并使用带有 S3 事件的 lambda 来执行基于文件的操作
    猜你喜欢
    • 2013-04-19
    • 1970-01-01
    • 1970-01-01
    • 2019-01-23
    • 2011-09-02
    • 2020-01-27
    • 2020-07-27
    • 2013-01-01
    相关资源
    最近更新 更多