Google云端硬盘上传API - 包含0个mime部分的无效多部分请求

时间:2018-01-30 16:27:36

标签: javascript node.js api google-drive-api drive

我在使用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.

我已经做了一些搜索,无法找到任何帮助,所以任何帮助都会受到赞赏。提前干杯。

3 个答案:

答案 0 :(得分:1)

我是google-auth-librarygoogleapis的当前维护者。请 确保您不在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