当前位置: 首页 > 知识库问答 >
问题:

google drive列出公共共享文件夹中的文件

邢华清
2023-03-14

我有一个经过验证的谷歌客户端,我想列出其他人公用文件夹中的文件(我认为共享或不共享的文件夹是不相关的,因为它是公用的)

这是我在NodeJS中的代码

  const drive      = google.drive({ version: 'v3', auth });
  let fconf        = {};
  fconf.maxResults = 10;
  fconf.orderBy    = "createdTime"; 
  fconf.driveId    = "xyz-badfd134343example";
  fconf.includeItemsFromAllDrives = true;
  fconf.q          = "application/vnd.google-apps.spreadsheet";
  fconf.supportsTeamDrives = true; 
  fconf.corpa              = "drive";
  fconf.supportsAllDrives  = true;

  drive.files.list(fconf, function(e,d)
  {
    console.log("e,d",e,d);
  });
 }

注意:文档中没有“folderId”选项:https://developers.google.com/drive/api/v3/reference/files/list-只是一个drivid选项

虽然我将corpa设置为“drive”和drive Id,但我得到了以下错误

{ Error: The driveId parameter must be specified if and only if corpora is set to drive.
    at Gaxios.<anonymous> (/home/ubuntu/c/node_modules/gaxios/build/src/gaxios.js:73:27)
    at Generator.next (<anonymous>)
    at fulfilled (/home/ubuntu/c/node_modules/gaxios/build/src/gaxios.js:16:58)
    at <anonymous>
    at process._tickDomainCallback (internal/process/next_tick.js:228:7)
  response: 
   { config: 
      { url: 'https://www.googleapis.com/drive/v3/files?driveId=examplexyz&includeItemsFromAllDrives=true&corpa=drive&supportsAllDrives=true',
        method: 'GET',
        paramsSerializer: [Function],
        headers: [Object],
        params: [Object],
        validateStatus: [Function],
        responseType: 'json' },
     data: { error: [Object] },
     headers: 
      { 'alt-svc': 'quic=":443"; ma=2592000; v="46,43",h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000',
        'cache-control': 'private, max-age=0',
        connection: 'close',
        'content-encoding': 'gzip',
        'content-type': 'application/json; charset=UTF-8',
        date: 'Thu, 24 Oct 2019 00:38:10 GMT',
        expires: 'Thu, 24 Oct 2019 00:38:10 GMT',
        server: 'GSE',
        'transfer-encoding': 'chunked',
        vary: 'Origin, X-Origin',
        'x-content-type-options': 'nosniff',
        'x-frame-options': 'SAMEORIGIN',
        'x-xss-protection': '1; mode=block' },
     status: 403,
     statusText: 'Forbidden' },
  config: 
   { url: 'https://www.googleapis.com/drive/v3/files?driveId=examplexyz&includeItemsFromAllDrives=true&corpa=drive&supportsAllDrives=true',
     method: 'GET',
     paramsSerializer: [Function],
     headers: 
      { 'Accept-Encoding': 'gzip',
        'User-Agent': 'google-api-nodejs-client/0.7.2 (gzip)',
        Authorization: 'Bearer something',
        Accept: 'application/json' },
     params: 
      { driveId: 'examplexyz',
        includeItemsFromAllDrives: true,
        corpa: 'drive',
        supportsAllDrives: true },
     validateStatus: [Function],
     responseType: 'json' },
  code: 403,
  errors: 
   [ { domain: 'global',
       reason: 'teamDriveIdRequiresTeamDriveCorpora',
       message: 'The driveId parameter must be specified if and only if corpora is set to drive.' } ] } undefined
close the queue { success: true }

共有1个答案

关志勇
2023-03-14
  • 要从公开共享的文件夹中检索文件列表。
    • 您只想检索电子表格文件。

    如果我的理解是正确的,这次修改怎么样?

    • 在此修改中,为了从公共共享文件夹中检索文件列表,将修改脚本的搜索查询。
    const folderId = "###"; // Please set the folder ID of the publicly shared folder.
    
    const drive = google.drive({ version: "v3", auth });
    let fconf = {};
    fconf.maxResults = 10;
    fconf.orderBy = "createdTime";
    fconf.q = `'${folderId}' in parents and mimeType = 'application/vnd.google-apps.spreadsheet'`;
    drive.files.list(fconf, function(error, response) {
      if (error) {
        console.log(error);
      } else {
        console.log(response.data);
      }
    });
    
    • 如果要检索公共共享文件夹中所有文件的文件列表,请使用parents中的“${folderId}”作为搜索查询
    • 在上面修改的脚本中,当文件夹不是您的且未公开共享时,无法从该文件夹中检索文件列表。请小心这个
    • 文件:列表
    • 搜索文件

    如果我误解了你的问题,而这不是你想要的结果,我道歉。

    当您提供的文件夹ID用于脚本时,下面的脚本如何?在这种情况下,在检索的文件列表中可以看到8个文件夹。

    const drive = google.drive({ version: "v3", auth });
    const folderId = "0B3d5a94e071mfjN6S19MeGZZYi1hWHNfeFlPWVdqS3RMWXhXMnhJeHhmdU91WWlwWjdCN1U";
    let fconf = {};
    fconf.maxResults = 10;
    fconf.orderBy = "createdTime";
    fconf.q = `'${folderId}' in parents`;
    drive.files.list(fconf, function(error, response) {
      if (error) {
        console.log(error);
      } else {
        console.log(response.data);
      }
    });
    

 类似资料:
  • 当文件需要与企业外的人进行共享或者协作时,则可通过公开共享的方式,目前公开共享有共享链接和二维码2种共享方式,共享方式如下: 1)开启公开共享; 2)设置共享权限,可设置:可编辑、仅下载、仅查看; 3)设置有效时间,可设置:24小时、7天、1个月、永久有效; 4)复制公开链接或者复制/保存共享二维码; 5)将二维码或者链接通过轻推或者其他方式发送给需要共享的对象; 6)收到链接或者二维码的人无需下

  • 因此,我的Laravel项目中有以下文件夹组织: 公共 user_images group_images img css 供应商 等... 所以我的问题是,当用户上传图像时,我将其移动到文件夹user#image,然后使用干预图像使其变小,使用image::make(#folder),然后重新调整其大小,最后保存它。但要做到这一点,文件夹用户_映像需要特殊权限,使用chmod 777,我可以使其正

  • 我正在尝试传递一个位于我的应用程序的res/raw目录中的图像以及共享意图。 我遵循了FileProvider文档中描述的流程,下面是我的代码: Androidanifest.xml 我的活动中的代码: 由于无法访问我在其他应用程序中获取的文件,因此上述操作无效: java.io.FileNotFoundException:FILE_PATH:打开失败: EACCES(权限拒绝) 知道我做错了什么

  • 您可以使用共享文件夹 Microsoft 管理控制台 (MMC) 管理单元集中管理计算机上的文件共享。共享文件夹允许您创建文件共享和设置权限,查看和管理打开的文件以及连接到计算机上文件共享的用户。

  • 本文向大家介绍服务器共享文件夹设置软件、文件共享服务器软件和共享文件夹加密工具的选择,包括了服务器共享文件夹设置软件、文件共享服务器软件和共享文件夹加密工具的选择的使用技巧和注意事项,需要的朋友参考一下     当前,很多企业都在局域网搭建了文件服务器,用于共享文件供局域网用户访问使用,并且很多共享文件都是单位积累的无形资产和商业机密,如何在允许员工访问服务器共享文件的同时还能保证服务器的安全呢?

  • 我有一个iOS应用程序,可以加载PDF供查看。我想允许该应用程序从谷歌硬盘的共享文件夹中获取PDF,该文件夹由某个主管理员帐户共享。 我已经创建了一个谷歌驱动器项目,并为我的应用程序设置了OAuth,并且能够使用GTLQueryDrive的各种查询成功列出文件。 我面临的问题与授权范围有关。 假设托管这些文件的谷歌账户包含一个共享文件夹:PDFAppFiles。我们与20人共享此文件夹。 我的iO