NodeJS创建后不显示Api Rest谷歌驱动器文件夹

时间:2019-02-15 10:14:24

标签: node.js google-api google-drive-api google-api-nodejs-client

通过google api rest创建文件夹时,我无法从google驱动器控制台中看到新创建的文件夹。该代码有效,它返回带有刚刚创建的文件夹的所有数据的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

1 个答案:

答案 0 :(得分:1)

您似乎正在使用服务帐户进行身份验证。服务帐户是虚拟用户,他们拥有自己的Google云端硬盘帐户,Google日历帐户以及其他一些帐户。

当您上传该文件时,其已上传到服务帐户google驱动器帐户。服务帐户没有网络视图,您只能以编程方式对其进行访问。

选项:上传到您的帐户

在您的Google云端硬盘帐户上创建目录,然后与服务帐户共享该目录并上传到该目录。

选项:与您共享服务帐户目录

让服务帐户创建目录,然后向自己授予该目录的权限。然后,您将能够在您的帐户中看到该目录。

注意

服务帐户上传文件时,它将是该文件的所有者,请确保您授予自己这些文件的权限,否则将无法访问它们。是的,您可以在驱动器帐户上拥有一个您无权访问的文件。