通过 google api rest 创建文件夹时,我无法从 google Drive 控制台看到新创建的文件夹。该代码有效,它返回包含刚刚创建的文件夹的所有数据的 json。
function createFolder(nameProduct,folderId){
console.log("nome folder : "+nameProduct);
console.log("id parent : "+folderId);
var fileMetadata = {
'name': nameProduct,
'mimeType': 'application/vnd.google-apps.folder',
parent : [folderId]
};
let objFolder = {
auth: jwToken,
resource: fileMetadata,
fields: 'id'
}
return new Promise((resolve,reject)=>{
drive.files.create(objFolder).then(function(response) {
// Handle the results here (response.result has the parsed body).
console.log("Response", response);
resolve(response);
},
function(err) {
// handle error here.
reject(err);
console.error("Execute error", err);
});
});
}
var jwToken = new google.auth.JWT(
key.client_email,
null,
key.private_key, ["https://www.googleapis.com/auth/drive"],
null
);
jwToken.authorize((authErr) => {
if (authErr) {
console.log("error : " + authErr);
return;
} else {
console.log("Authorization accorded");
}
});
身份验证工作正常,我可以创建文件。我仅在文件夹方面遇到此问题。 为什么在 google 云端硬盘上看不到?该方法正确返回id
最佳答案
您似乎正在使用服务帐户进行身份验证。服务帐户是虚拟用户,他们有自己的 Google 云端硬盘帐户、Google 日历帐户以及可能更多帐户。
当您上传该文件时,它会上传到服务帐户 Google 云端硬盘帐户。服务帐户没有 Web View ,您只能通过编程方式对其进行访问。
选项:上传到您的帐户
在您的 Google 云端硬盘帐户上创建一个目录,与服务帐户共享该目录并上传到该目录。
选项:与您共享服务帐户目录
让服务帐户创建一个目录,然后授予自己对该目录的权限。然后您将能够在您的帐户中看到该目录。
注意
当服务帐户上传文件时,它将成为该文件的所有者,请确保您授予自己对这些文件的权限,否则您将无法访问它们。是的,您的云端硬盘帐户上可能有一个您无权访问的文件。 😉
关于node.js - Nodejs 创建后,API Rest 谷歌驱动器文件夹不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54707059/