一年前我用google drive api v3编写了一个node.js脚本,我正在使用node v7。现在我决定更新到v9并更新我的所有节点模块。但后来我遇到了很多问题。
第一个问题是auth不再工作了。官方谷歌驱动器文档还没有更新自己的代码,所以我发现随机评论的解决方案。例如
const readline = require('readline'),
{ google } = require('googleapis'),
service = google.drive('v3'),
{ OAuth2Client } = require('google-auth-library'),
googleAuth = require('google-auth-library');
在我举例之前:
google = require('googleapis')
现在,在修复了auth后,google的quickstart文件再次运行,我能够创建我的令牌并列出我的文件等。
然后,当我从脚本到达上传区域时,我收到此错误代码:
Request body larger than maxBodyLength limit
我尝试将其与google drive api结合使用,但无法找到任何解决方案。我的代码可能已经过时了吗?因为使用节点v7和一年多前的谷歌模块,它就像一个魅力! :/
这是我的上传代码:
var fileMetadata = {
'name': together,
parents: [ foldername_folderid ]
}
var media = {
mimeType: 'application/octet-stream',
body: fs.createReadStream('C:/testarea/file.container') // <-- this is my own file format it worked before with the old google modules!
}
drive.files.create({
resource: fileMetadata,
media: media,
auth: auth,
fields: 'id'
}, function(e, file) {
if (e) {
console.log('error: ' + e)
return;
}
//.. do something when upload successfully
});
我上传的测试文件只有不到20MB,所以我认为问题与文件大小无关?如果有人对此有所了解会很棒!
编辑:代码正在使用一个非常小的文件,例如5MB以下..我认为谷歌改变了他们的库,他们不支持任何超过10MB的单个文件上传。我认为你必须使用分块上传
答案 0 :(得分:0)
代码正在处理一个非常小的文件,例如5MB以下。我认为谷歌改变了他们的库,他们不再支持大于10MB的单个文件上传。我认为你必须使用chunked upload。
但是我找不到任何针对node.js的可恢复上传的示例代码...... https://developers.google.com/drive/v3/web/resumable-upload
也许有人有示例代码?我在这里为这个问题创建了一个新帖子: How to resumable upload with google drive node.js