通过 google-api-javascript-client 库通过批处理文件上传获取 404 错误
Posted
技术标签:
【中文标题】通过 google-api-javascript-client 库通过批处理文件上传获取 404 错误【英文标题】:get 404 error by batch file upload via google-api-javascript-client library 【发布时间】:2013-10-29 15:44:45 【问题描述】:我正在尝试将整个文件夹上传到谷歌驱动器。
我可以通过一个请求成功上传一个文件。
但我在上传整个文件时遇到 rateLimitExceed 错误。
所以,我尝试使用批处理请求。
使用批处理请求创建文件夹已成功完成。
但是当我尝试通过批量请求上传文件时,它返回 404 错误。 (未找到)
这是谷歌驱动的错误吗? 如果是这样,我应该延迟上传很多文件吗?
var boundary = '--314159265358979323846';
var delimiter = "\r\n--" + boundary + "\r\n";
var close_delim = "\r\n--" + boundary + "--";
var contentType = 'text/plain';
var metadata =
'title': 'test1.txt',
'mimeType': contentType
;
var base64Data = btoa('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
var multipartRequestBody =
delimiter +
'Content-Type: application/json\r\n\r\n' +
JSON.stringify(metadata) +
delimiter +
'Content-Type: ' + contentType + '\r\n' +
'Content-Transfer-Encoding: base64\r\n' +
'\r\n' +
base64Data +
close_delim;
var request = gapi.client.request(
'path': '/upload/drive/v2/files',
'method': 'POST',
'params': 'uploadType': 'multipart',
'headers':
'Content-Type': 'multipart/mixed; boundary="' + boundary + '"'
,
'body': multipartRequestBody);
var httpBatch = gapi.client.newHttpBatch();
httpBatch.add(request,
callback: function(resp, rawResp)
console.log(rawResp);
);
httpBatch.execute(function(resp, rawResp)
console.log(rawResp)
);
错误在这里:
"id":"1171148984","result":false
"gapiRequest":"data":"body":"--batch_YZmy6yr9vIk=_ABqi-xumfFQ=\r\nContent-Type: application/http\r\nContent-ID: <response-1171148984>\r\n\r\nHTTP/1.1 404 Not Found\r\nContent-Type: text/html; charset=UTF-8\r\nDate: Mon, 21 Oct 2013 07:53:20 GMT\r\nExpires: Mon, 21 Oct 2013 07:53:20 GMT\r\nCache-Control: private, max-age=0\r\nContent-Length: 9\r\n\r\nNot Found\r\n--batch_YZmy6yr9vIk=_ABqi-xumfFQ=--\r\n","headers":"pragma":"no-cache","date":"Mon, 21 Oct 2013 07:53:20 GMT","server":"GSE","content-type":"multipart/mixed; boundary=batch_YZmy6yr9vIk=_ABqi-xumfFQ=","cache-control":"no-cache, no-store, max-age=0, must-revalidate","content-length":"349","expires":"Fri, 01 Jan 1990 00:00:00 GMT","status":200,"statusText":"OK"
【问题讨论】:
批处理(即使它有效)也无济于事。您仍然会收到速率限制错误。见***.com/questions/18578768/…。现在唯一的解决方案是减慢插入速度以避免 403 错误。我发现需要延迟 2-3 秒。 【参考方案1】:无法批量上传,请单独运行上传请求。
【讨论】:
以上是关于通过 google-api-javascript-client 库通过批处理文件上传获取 404 错误的主要内容,如果未能解决你的问题,请参考以下文章
java是通过值传递,也就是通过拷贝传递——通过方法操作不同类型的变量加深理解