如何处理Google App Engine中传入的请求错误“请求太大”?

时间:2015-10-09 07:35:15

标签: java google-app-engine

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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