我在使用Google Drive node.js库时遇到了一些问题。我正在尝试将图片上传到我的google驱动器,我之前已通过身份验证,因此“oauth2Client”#39;宾语。这与谷歌文档中的example几乎相似。
var service = googleApi.drive('v3');
var fileMetadata = {
'name': 'jpeg-home.jpg'
};
var media = {
mimeType: 'image/jpeg',
body: fs.createReadStream('./temp/downloads/jpeg-home.jpg')
};
service.files.create({
auth: oauth2Client,
resource: fileMetadata,
media: media,
fields: 'id'
}, function (err, file) {
if (err) {
console.error(err);
return false;
} else {
console.log('File Id: ', file.id);
return true;
}
});
我得到的回复是错误:
Error: Invalid multipart request with 0 mime parts.
我已经做了一些搜索,无法找到任何帮助,所以任何帮助都会受到赞赏。提前干杯。
答案 0 :(得分:1)
我是google-auth-library
和googleapis
的当前维护者。请 确保您不在google-auth-library
旁边安装自己的googleapis
版本。 googleapis
附带内置google-auth-library
的兼容版本。如果您尝试安装自己的版本 - 它可能会以奇怪的,不可预测的方式破解。
此处正确的做法是从package.json中删除google-auth-library
,运行npm install
,然后使用google.auth.OAuth2
来处理您的请求。希望这有帮助!
答案 1 :(得分:0)
自googleapis软件包25版以来,文档https://developers.google.com/drive/v3/web/manage-uploads中的示例似乎已被破坏。
恢复到googleapis@24.0.0将解决此问题,直到文档或更高版本的软件包代码得到修复。
答案 2 :(得分:0)
我通过将*** LOCAL GEMS ***
bigdecimal (1.2.8)
CFPropertyList (2.2.8)
did_you_mean (1.0.0)
io-console (0.4.5)
json (1.8.3)
libxml-ruby (2.9.0)
minitest (5.8.5)
net-telnet (0.1.1)
nokogiri (1.5.6)
power_assert (0.2.6)
psych (2.1.0)
rake (10.4.2)
rdoc (4.2.1)
sqlite3 (1.3.11)
test-unit (3.1.5)
升级到最新版本(此时为1.3.2)解决了这个问题。
在官方快速入门中,它指定安装库如下:
2.5.2
就这样安装最新版本:
google-auth-library
请注意,此升级有一些重大更改,因此您需要升级授权代码,例如指定的here