Javascript 谷歌云存储多部分上传,最后一块失败(503)
因此,我尝试使用多部分上传将一个文件上传到Google云存储,方法是事先将该文件分块,然后通过http put请求发送 问题是,当我上传文件的最后一块时,我得到的是一个503错误,而不是一条200完整的消息 为简单起见,我使用的是驱动器中的jpeg图像,先转换为blob,然后再转换为字节:Javascript 谷歌云存储多部分上传,最后一块失败(503),javascript,google-apps-script,google-cloud-storage,urlfetch,Javascript,Google Apps Script,Google Cloud Storage,Urlfetch,因此,我尝试使用多部分上传将一个文件上传到Google云存储,方法是事先将该文件分块,然后通过http put请求发送 问题是,当我上传文件的最后一块时,我得到的是一个503错误,而不是一条200完整的消息 为简单起见,我使用的是驱动器中的jpeg图像,先转换为blob,然后再转换为字节: var data = DriveApp.getFileById(DriveImageFileId).getBlob().getBytes(); 在文档之后,我首先请求一个可重复的上传URI var ac
var data = DriveApp.getFileById(DriveImageFileId).getBlob().getBytes();
在文档之后,我首先请求一个可重复的上传URI
var accessToken = OAuth2.0_Access_Token;
var header = {'X-Upload-Content-Type' : 'image/jpeg'}
var body = {"name": "filename.jpeg"}
var options = {
'method':'post',
'contentType':'application/json',
'oAuthUseToken':'never', // Disables OAuth1.0 config
'muteHttpExceptions':true,
'headers':header,
'contentLength': 582381,
'payload':JSON.stringify(body)
};
var response = UrlFetchApp.fetch('https://www.googleapis.com/upload/storage/v1beta2/b/myCloudStoreBucket/o?uploadType=resumable&access_token='+accessToken,options).getHeaders();
var uploadUrl = response.Location
这个很好用
我开始将文件字节解析为256x1024字节块,并使用上传URL通过http使用PUT进行上传。这不是问题,因为每次我上传一个块,我都会收到一个308响应,其中包含预期上传的字节数。我可以多次这样做,系数为256x1024,上传整个文件直到最后一块
下面是最后一个区块的URLFACHTAPP选项和标题,例如:
var options = {
"method": "put",
"contentType": "image/jpeg",
"contentLength": 58093,
"oAuthUseToken": "never",
"muteHttpExceptions": true,
"headers": {
"Content-Range": "bytes 524287-582380/582381"
},
"payload" : <dataBytes>
}
var response = UrlFetchApp.fetch(resumeUrl,options);
响应应该是200文件上传完成。我做错了什么?回答自己的问题,因为问题正在解决: 所以这里有两个部分是错误的
我向谷歌云存储团队报告了503错误,他们将在接下来的两个版本中修复他们的API。我在这里看到了类似的问题,但我已经成功上传了区块。最后一块仍然是一个问题:
Response Type: 503
Response Header:
{
"Date": "Wed, 16 Apr 2014 06:08:43 GMT",
"Content-Length": "0",
"Alternate-Protocol": "443:quic",
"Content-Type": "text/html; charset=UTF-8",
"Server": "HTTP Upload Server Built on Apr 7 2014 11:59:06 (1396897146)"
}
No Response body or error message.