使用 Google API 列表从共享子文件夹获取文件列表
Aquiring a file list from a shared sub folder using the Google API list
在编写 java 代码之前,我试图了解 GoogleAPI 的工作原理。
我正在尝试从共享驱动器的子目录中获取文件列表,
如果我使用高级共享文件夹中的文件 ID,我可以获得包括子文件夹在内的所有文件的列表。
每次我尝试只获取子文件夹中的文件时,我都会得到
{
"domain": "global",
"reason": "notFound",
"message": "Shared drive not found: 1S_4HV0vi3zPr-gt2lRTCp5hAJFooElCn",
"locationType": "parameter",
"location": "driveId"
}
我正在使用网站 https://developers.google.com/drive/api/v3/reference/files/list
使用以下参数
Corpra = drive
deriveid
includeItemsFromAllDrives=true
pagesize=250
SupportsAllDrive=true
这是我从中获取子文件夹 ID 的高级共享驱动器的部分输出
{
"kind": "drive#file",
"id": "1S_4HV0vi3zPr-gt2lRTCp5hAJFooElCn",
"name": "2021",
"mimeType": "application/vnd.google-apps.folder",
"teamDriveId": "0ACNyBdDB5wLXUk9PVA",
"driveId": "0ACNyBdDB5wLXUk9PVA"
},
我做错了什么???
您不能使用 Files.list() 中的共享驱动器子目录文件夹 ID。
此方法需要 driveId
,这是要搜索的共享驱动器的 ID。
您可以使用Drives.list()获取有效用户共享驱动器列表
如果你想列出子目录文件夹中的文件,你需要添加一个查询参数来指示文件的父文件夹id。参见 Search for files and folders
注:
部分文件资源字段默认不显示在响应正文中,如果要显示所有字段,请在Files.list()中设置fields
参数至 *
例如:
我的共享驱动器子文件夹 ID:“1V2bi9xN8aWDWzCvMWC4oCqmOGHh1xxxx”
如果我想列出这个子文件夹下的所有文件,我需要包含这个查询参数:'1V2bi9xN8aWDWzCvMWC4oCqmOGHh1xxxx' in parents
您的请求参数将为:
Corpra = drive
deriveid
includeItemsFromAllDrives=true
pagesize=250
SupportsAllDrive=true
q = 'shared drive sub-folder id' in parents
响应示例:
{
"kind": "drive#fileList",
"incompleteSearch": false,
"files": [
{
"kind": "drive#file",
"id": "1_XlY8tgcJgj13FItftGrF77ixxxxx",
"name": "subfolder_doc",
"mimeType": "application/vnd.google-apps.document",
"teamDriveId": "0AJWF4SKro9kyxxxx",
"driveId": "0AJWF4SKro9kyUxxxx"
}
]
}
(更新)
这是 java 中使用 Drive.Files.List() methods
的示例请求
FileList result = service.files().list()
.setCorpora('drive')
.setDriveId('0ACNyBdDB5wLXUk9xxxx')
.setPageSize(250)
.setIncludeItemsFromAllDrives(true)
.setSupportsAllDrives(true)
.setQ("'1-mZjjMTrcmlNm6SnJQeSQxGxxxxx' in parents")
.execute();
在编写 java 代码之前,我试图了解 GoogleAPI 的工作原理。
我正在尝试从共享驱动器的子目录中获取文件列表,
如果我使用高级共享文件夹中的文件 ID,我可以获得包括子文件夹在内的所有文件的列表。
每次我尝试只获取子文件夹中的文件时,我都会得到
{
"domain": "global",
"reason": "notFound",
"message": "Shared drive not found: 1S_4HV0vi3zPr-gt2lRTCp5hAJFooElCn",
"locationType": "parameter",
"location": "driveId"
}
我正在使用网站 https://developers.google.com/drive/api/v3/reference/files/list 使用以下参数
Corpra = drive
deriveid
includeItemsFromAllDrives=true
pagesize=250
SupportsAllDrive=true
这是我从中获取子文件夹 ID 的高级共享驱动器的部分输出
{
"kind": "drive#file",
"id": "1S_4HV0vi3zPr-gt2lRTCp5hAJFooElCn",
"name": "2021",
"mimeType": "application/vnd.google-apps.folder",
"teamDriveId": "0ACNyBdDB5wLXUk9PVA",
"driveId": "0ACNyBdDB5wLXUk9PVA"
},
我做错了什么???
您不能使用 Files.list() 中的共享驱动器子目录文件夹 ID。
此方法需要 driveId
,这是要搜索的共享驱动器的 ID。
您可以使用Drives.list()获取有效用户共享驱动器列表
如果你想列出子目录文件夹中的文件,你需要添加一个查询参数来指示文件的父文件夹id。参见 Search for files and folders
注:
部分文件资源字段默认不显示在响应正文中,如果要显示所有字段,请在Files.list()中设置fields
参数至 *
例如:
我的共享驱动器子文件夹 ID:“1V2bi9xN8aWDWzCvMWC4oCqmOGHh1xxxx”
如果我想列出这个子文件夹下的所有文件,我需要包含这个查询参数:'1V2bi9xN8aWDWzCvMWC4oCqmOGHh1xxxx' in parents
您的请求参数将为:
Corpra = drive
deriveid
includeItemsFromAllDrives=true
pagesize=250
SupportsAllDrive=true
q = 'shared drive sub-folder id' in parents
响应示例:
{
"kind": "drive#fileList",
"incompleteSearch": false,
"files": [
{
"kind": "drive#file",
"id": "1_XlY8tgcJgj13FItftGrF77ixxxxx",
"name": "subfolder_doc",
"mimeType": "application/vnd.google-apps.document",
"teamDriveId": "0AJWF4SKro9kyxxxx",
"driveId": "0AJWF4SKro9kyUxxxx"
}
]
}
(更新)
这是 java 中使用 Drive.Files.List() methods
的示例请求FileList result = service.files().list()
.setCorpora('drive')
.setDriveId('0ACNyBdDB5wLXUk9xxxx')
.setPageSize(250)
.setIncludeItemsFromAllDrives(true)
.setSupportsAllDrives(true)
.setQ("'1-mZjjMTrcmlNm6SnJQeSQxGxxxxx' in parents")
.execute();