我使用软件包googleapis(v.40)在google驱动器上上传文件时遇到问题:
在我的网络应用程序(使用Vue js编写)中,我需要使用googleapis将用户“ A”的图像文件上传到用户“ B”的google驱动器空间中。
为此,我从(用户B的)Google控制台平台创建了一个“服务帐户”,并生成了用于API访问的凭据。 (JWToken,服务到服务场景)
在我的Web应用程序中,通过服务帐户的json凭据获取AccessToken之后,我准备上传文件。但是,当我调用drive.files.create(...)api时,出现以下错误:
无效的多部分请求,其中的mime部分为0。
下面是一些代码:
...
// get google api
const {google} = require("googleapis");
const drive = google.drive("v3");
// get authorization token
let authToken = await getAuthToken() // it perfectly works
console.log(authToken)
let metadata = {
name: name,
parents: [idOfTheParentFolder]
}
let media = {
mimeType: 'image/jpeg',
body: file
}
let objImage = {
auth: authToken,
resource:metadata,
media: media,
fields: 'id',
}
drive.files.create(objImage, function (error, success) {
if (!error) {
...
}
else{
// here i got the error in question
}
})
我已经在单个节点js文件中准确地尝试了此代码,并且可以正常工作,但是在Web浏览器Vue应用程序中无法正常工作。
首先让我说,用于显示文件的API(drive.files.list())和用于创建文件夹的API(drive.files.create())在我的Web应用程序中都可以正常工作。
有什么建议吗?