【发布时间】:2018-08-09 20:15:09
【问题描述】:
嘿,由于 google drive 正在更改他们的库,我无法通过基本上传 drive.files.create 上传大于 5MB 的文件。文档告诉我,我必须选择可恢复的上传。但是 google drive 没有提供任何示例代码,而且我在 google 上也找不到任何东西。
知道我可以使用 drive.files.create 上传小于 5MB 的文件可能很重要
所以认证没有问题。
https://developers.google.com/drive/v3/web/resumable-upload
我写了这个 POST 请求(也不适用于 PUT):
var fs = require('fs')
var request = require('request')
var file = 'C:\\test\\sample.container'
var uploadUrl = 'https://www.googleapis.com/drive/v3/files?uploadType=resumable'
var stats = fs.statSync(file)
var fileSizeInBytes = stats["size"]
fs.readFile(file, function read(e, f) {
if (e) {
console.log(e)
return;
}
request.post({
url: uploadUrl,
headers: {
'Authorization': 'xxxxxxxxxxxxxxxxxxxxxxx',
'Content-Length': fileSizeInBytes,
'Content-Type': 'application/octet-stream'
},
body: f,
}, function(e, r, b) {
if (e) {
console.log(e)
return;
}
console.log(`
Response: ${ JSON.stringify(r) }
Body: ${ b }
`)
});
});
但我得到了身体结果:
<HTML>
<HEAD>
<TITLE>Request Entity Too Large</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Request Entity Too Large</H1>
<H2>Error 413</H2>
</BODY>
</HTML>
如果我改为使用请求网址: https://www.googleapis.com/upload/drive/v3/files?uploadType=resumable
我还收到一条与正文结果类似的消息: 请求过大。
那么任何人都有一个工作代码,用于通过可恢复上传或可能再次通过基本上传上传文件?或者还有其他上传大文件的方法吗?我对替代品持开放态度!谢谢
【问题讨论】:
标签: node.js google-api google-drive-api google-api-nodejs-client