【问题标题】:Upload in chunks to Google Cloud Storage error out 503 Service Unavailable分块上传到 Google Cloud Storage 错误输出 503 服务不可用
【发布时间】:2014-01-23 13:56:06
【问题描述】:

我正在尝试使用 jQueryGoogle Cloud Storage v1beta2 Json API 将文件分块上传到 Google Cloud Storage。我正在执行API documentation 中所述的以下步骤。

第一步:发布请求以获取 UploadId

POST /upload/storage/v1beta2/b/test-bucket-01/o?uploadType=resumable&name=args-master.zip HTTP/1.1
Host: www.googleapis.com
Connection: keep-alive
Content-Length: 0
Accept: */*
Origin: http://www.trial.com
Authorization: Bearer ya29.1.AADtN_UptViwI44N8A3Pg89q3lKS7ZesTqYplm0whTdTJFOj0MHjtp-yM7dB8GzfJk62lIuo

在响应中,我得到包含 UploadId 的位置标头

HTTP/1.1 200 OK
Location: https://www.googleapis.com/upload/storage/v1beta2/b/test-bucket-01/o?uploadType=resumable&name=args-master.zip&upload_id=AEnB2UoOYm9JYDAPNPisFKG5yheFdRF8oVaxpRHg62BGGBVr2Ue-sg3fbOmg1Ol-PFSXY60aPcl_hDaJP9176ZF6DPaCDAyDkg
Vary: Origin
Access-Control-Allow-Origin: http://www.trial.com
Access-Control-Expose-Headers: Cache-Control, Content-Length, Content-Type, Date, Expires, Location, Pragma, Server,

第二步: 用 UploadId 和内容提出请求

PUT /upload/storage/v1beta2/b/test-bucket-01/o?uploadType=resumable&name=args-master.zip&upload_id=AEnB2UoOYm9JYDAPNPisFKG5yheFdRF8oVaxpRHg62BGGBVr2Ue-sg3fbOmg1Ol-PFSXY60aPcl_hDaJP9176ZF6DPaCDAyDkg HTTP/1.1
Host: www.googleapis.com
Connection: keep-alive
Content-Length: 262144
Cache-Control: no-cache
Content-Range: bytes 0-262143/1361678
Authorization: Bearer ya29.1.AADtN_UptViwI44N8A3Pg89q3lKS7ZesTqYplm0whTdTJFOj0MHjtp-yM7dB8GzfJk62lIuo
Origin: http://www.trial.com

响应 PUT 请求,我收到 503 Service Unavailable 错误。

HTTP/1.1 503 Service Unavailable
Access-Control-Allow-Origin: http://www.trial.com
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers: Access-Control-Allow-Credentials, Access-Control-Allow-Origin, Access-Control-Expose-Headers, Content-Length, Content-Type, Date, Server, Transfer-Encoding

我也尝试使用 Google Cloud Storage 的 XML API 分块上传,但遇到了同样的错误。 请提出这里出了什么问题。

谢谢

【问题讨论】:

  • 我在您的请求中没有看到任何错误。虽然您没有像文档中所说的那样指定 X-Goog-Content-Length/Type,但它仍然可以工作。您可以向 gs-team@google.com 发送跟踪信息吗?

标签: jquery google-cloud-storage


【解决方案1】:

我得到了解决方案,这是我的错误。正如here 提到的,Google 对块大小非常讲究。

块大小限制:所有块必须是 256 KB (256 x 1024 字节)大小,除了完成 上传。如果您使用分块,将块大小保持为 尽可能大以保持上传效率。

我发送的字节少于限制,这就是我收到错误的原因。

我仍然对 Google 为我的错误发送 503 错误而不是误导性的 4XX 错误感到惊讶。

希望这对其他人有所帮助。

【讨论】:

  • 您请求中的 Content-Length 正好是 256 KB,Content-Range 也是如此。这是否意味着您发送的字节数少于标头指示的字节数?
猜你喜欢
  • 2014-05-30
  • 2021-05-10
  • 2012-03-10
  • 2015-09-11
  • 1970-01-01
  • 2014-02-28
  • 1970-01-01
  • 2021-08-27
  • 1970-01-01
相关资源
最近更新 更多