【问题标题】:How to handle incoming request error 'Request Too Large' in Google App Engine?如何在 Google App Engine 中处理传入请求错误“请求太大”?
【发布时间】:2015-10-09 07:35:14
【问题描述】:

我们将 GAE Servlet POST URL 作为 Webhook 提供给发送数据的第三方服务。根据GAE - “每个传入的HTTP请求不能大于32MB。”

有时第三方服务会发送超过 40MB 的数据,这些数据会被 GAE 服务器拒绝为“请求太大”错误。 如果 webhook URL 未返回 200 HTTP 响应代码,则服务会在另一端连续重试 100 次并阻止进一步的请求,直到重试完成。

是否可以使用 GAE 处理此类请求并发送 200 HTTP 响应代码?

【问题讨论】:

    标签: java google-app-engine


    【解决方案1】:

    您无法直接绕过 GAE 中的 32MB 上传限制。但是您可以使用以下选项之一构建有效的解决方案:

    • 使用blobstore uploads。文档说您不能提供超过 32MB 的块,但您应该能够上传比这更大的文件。
    • 让第三方服务上传到云存储
    • 让第三方服务上传30MB的chunk,在最后一个chunk之后重新组装完整的请求。 Compose API endpoint 应该对此很有用。

    遗憾的是,所有这些选项都需要第三方服务对其请求进行更改。您可以联系 Google 支持并询问他们是否会增加您应用的限制。我怀疑他们是否会这样做,因为限制请求大小和请求持续时间(截止日期)是使您的应用可扩展的好方法。

    【讨论】:

    • 感谢konqi的回复,我已经问过他们说必须在我们的服务器端完成。
    • 很遗憾听到这个消息。不过,我在 GAE 上的 servlet 请求中看不到任何方法可以做到这一点。也许使用托管虚拟机?
    猜你喜欢
    • 1970-01-01
    • 2019-08-08
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    • 2018-05-18
    • 1970-01-01
    • 2012-11-13
    • 1970-01-01
    相关资源
    最近更新 更多