Google Drive API:列出共享驱动器下的所有文件夹

时间:2020-07-23 16:25:39

标签: google-drive-api

有关列出共享驱动器下的文件夹的问题。

通过将查询参数传递为以下内容,我可以在调用下面的API时获得成功的响应:

  • includeTeamDriveItems = true
  • q =“ 0AATe_aghhsdfvbdfg”(父母和mimeType =“ application / vnd.google-apps.folder”
  • supportsAllDrives = true

API:https://developers.google.com/drive/api/v3/reference/files/list?apix_params=%7B%22includeTeamDriveItems%22%3Atrue%2C%22q%22%3A%22%270AATe_aghhsdfvbdfg%27%20in%20parents%20and%20mimeType%20%3D%20%27application%2Fvnd.google-apps.folder%27%22%2C%22supportsAllDrives%22%3Atrue%7D

成功的响应:

{
 "kind": "drive#fileList",
 "incompleteSearch": false,
 "files": [
 {
  "kind": "drive#file",
  "id": "1E-c0rNCQMlQvXNUGTKSWdPHBOwwzjtcf",
  "name": "Integration",
  "mimeType": "application/vnd.google-apps.folder",
  "teamDriveId": "0AATe_aghhsdfvbdfg",
  "driveId": "0AATe_aghhsdfvbdfg"
 },
 {
  "kind": "drive#file",
  "id": "1QOMRSPuE1msJJmyr3yJOMZsBrn3nrtAx",
  "name": "Folder1",
  "mimeType": "application/vnd.google-apps.folder",
  "teamDriveId": "0AATe_aghhsdfvbdfg",
  "driveId": "0AATe_aghhsdfvbdfg"
 }
 ]
}

问题:从响应中返回共享驱动器下的现有文件夹。是否可以一次获取父文件夹下的所有子文件夹,而不必每次都在查询参数下传递父文件夹ID? (例如:要获取父文件夹“集成”下的所有子文件夹)

  • Dilip

1 个答案:

答案 0 :(得分:1)

  • 可以使用一个API调用通过搜索查询来检索父文件夹下的文件夹,如下所示。在这种情况下,'folderId' in parents被用作搜索查询。

      curl \
        'https://www.googleapis.com/drive/v3/files?corpora=drive&driveId=driveId&includeItemsFromAllDrives=true&q=%27folderId%27%20in%20parents&supportsAllDrives=true' \
        --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
        --header 'Accept: application/json' \
        --compressed
    
    • 并且,当您要检索2个文件夹下的文件时,也可以使用以下示例。在这种情况下,'folderIdA' in parents or 'folderIdB' in parents被用作搜索查询。

        curl \
          'https://www.googleapis.com/drive/v3/files?corpora=drive&driveId=driveId&includeItemsFromAllDrives=true&q=%27folderIdA%27%20in%20parents%20or%20%27folderIdB%27%20in%20parents&supportsAllDrives=true' \
          --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
          --header 'Accept: application/json' \
          --compressed
      
    • 从您的问题来看,我认为您已经完成以上操作。

  • 在当前阶段,无法直接检索父文件夹下的所有嵌套子文件夹。

    • 在这种情况下,需要准备脚本。

    • 不幸的是,在当前阶段,这似乎是Google方面的当前规范。

注意:

  • 在大多数情况下,可以使用includeItemsFromAllDrives=truesupportsAllDrives=true。但是在某些情况下,我还需要corpora=drivedriveId=###。因此,在共享的云端硬盘中,无法检索文件时,请尝试使用此功能。

参考文献: