获取云端硬盘 SDK 上按文件夹列出的文件列表

2022-08-30 23:05:42

我正在尝试构建一个Web UI,供用户浏览他/她的Google云端硬盘,并选择要稍后在数据库中的网站中引用的一个或多个文档。我目前正在使用PHP构建一个Web界面。

我面临的问题是我找不到单个函数来按文件夹ID获取文件列表。

我尝试使用:

$service->children->listChildren($rootFolderId)

...但这只会为文件夹中的文件(所谓的子资源项)提供文件的引用ID,这意味着我必须遍历这些文件并为每个文件创建一个调用,以便获取我的UI所需的所有元数据。

不幸。。

$service->files->list()

..将按文件夹列出我的所有文件,没有过滤选项。

我想知道是否有一种有效的方法可以从对云端硬盘服务器的单个调用中提取文件夹文件列表。我实际上记得能够在旧的Google DOC API上执行此任务。

非常感谢您的帮助


答案 1

注意 此答案使用 v2 API。新应用程序应写入 v3 API。

现在可以使用 drive.files.list 终结点列出属于特定文件夹的文件。

为此,可以按如下方式使用查询参数:?q=

GET https://www.googleapis.com/drive/v2/files?q="'<FOLDER_ID>' in parents"

在 PHP 中,这将是

$service->files->list(array('q' => "'<FOLDER_ID>' in parents"));

答案 2

查询参数是否会列出父级中具有此类<FOLDER_ID>的文件和/或文件夹
在我看来,这是预期的结果。我问这个问题是因为,在上面的答案中,有人写道:<FOLDER_ID> in parents

...以列出属于特定文件夹的文件

有关搜索参数的文档说明:

这将查找 ID 为1234567的父文件夹的所有子文件夹。

我将添加一个“仅文件夹”列表,可以通过向查询字符串添加类似

内容来返回。and mimeType='application/vnd.google-apps.folder'


推荐