以块的形式上传到Google云端存储错误输出503服务不可用

时间:2014-01-06 07:44:23

标签: jquery google-cloud-storage

我正在尝试使用 jQuery Google Cloud Storage v1beta2 Json API 将文件分块上传到Google云端存储中。我正按照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服务不可用错误。

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上传但是也遇到了同样的错误。 请在这里建议出现问题。

由于

1 个答案:

答案 0 :(得分:3)

我得到了解决方案,这是我的错误。如上所述here,Google非常关注大小。

  

块大小限制:所有块必须是256 KB的倍数(256 x   大小为1024字节),完成后的最终块除外   上传。如果使用分块,则保持块大小非常重要   尽可能大,以保持上传效率。

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

我仍然感到惊讶的是谷歌因为我的错误发送了503错误,而不是误导了4XX错误。

希望这会有所帮助。