Google api GoogleDriveAPIv3,有没有办法获取作为文件ID父级的文件夹列表?

Google api GoogleDriveAPIv3,有没有办法获取作为文件ID父级的文件夹列表?,google-api,google-drive-api,Google Api,Google Drive Api,在v2中,可以通过查询fileId(在children中)调用/files,以获取作为所提供文件父对象的DriveFile对象列表 现在,似乎需要调用/files/:fileId?fields=parents,然后为每个返回的父项单独调用/files/:parentId,可能会将一个调用变成一打 这是正确的吗?如果是,为什么?这对我们的应用程序来说是一个巨大的性能打击,所以希望有一个未记录的方法。查询“'fileId'in children'”在v2中也不公开存在(未记录/支持),我也不记得它曾

在v2中,可以通过查询
fileId(在children
中)调用
/files
,以获取作为所提供文件父对象的
DriveFile
对象列表

现在,似乎需要调用
/files/:fileId?fields=parents
,然后为每个返回的父项单独调用
/files/:parentId
,可能会将一个调用变成一打

这是正确的吗?如果是,为什么?这对我们的应用程序来说是一个巨大的性能打击,所以希望有一个未记录的方法。

查询“'fileId'in children'”在v2中也不公开存在(未记录/支持),我也不记得它曾经存在过。V2中存在的是Parents集合,它有效地回答了相同的问题。在v3中,要获取文件的父级,只需获取子级并请求父级字段

至于这是否是一个性能的打击,我不认为这是在实践中。v2中的父资源一开始非常简单,除了ID之外,唯一有用的字段是'isRoot'属性。您可以通过提前调用files/root来计算自己,以获取该用户的根文件夹ID(只需保存一次,该用户的根文件夹不会更改)

如果您需要获得更多有关家长的信息,而不仅仅是ID,并且担心必须拨打的电话太多,请使用批处理来获取这些电话。如果只有一个父级,则无需批处理(这只是开销)。如果发现文件有多个父级,则创建批处理请求。这将作为单个HTTP请求/响应发送,并在后端得到非常高效的处理

关键是,若你们只需要ID,那个就不会比以前更糟了。只需一个电话就能找到一个文件的父母


如果您需要多个ID,则最多需要2个HTTP请求(在非常奇怪的边缘情况之外,例如1000多个超出批量大小的父级:)

在V3中,可以列出父级的所有子级,如下所述:

示例调用:
https://www.googleapis.com/drive/v3/files?q=parents 在'0byho0qadzababmvl8xcdr1s0pny3c'
中,当然用
%20
替换空格,这将列出文件夹中具有
id='0byho0qadzababmvl8xcdr1s0pny3c'
的所有文件,您只需提及如下内容:

var request = service.Files.List();
 request.Q = "('root' in parents)";
 var FileListOfParentOnly = request.Execute();

我完全忘记了批次。不过,能够查询
子项
要简单得多。我不明白为什么
父母
在那里,而不是
孩子
(可以在v2中发誓它在那里,但足够确定…)大多数时候导航是自上而下的,文件夹对于组织/界定内容很有用,这就是为什么“父母id”很有用的原因(在我的“财务”文件夹中搜索包含“visa”的文档。)回溯没有那么有用,在大多数情况下,一个文件应该只有一个父文件。我有点好奇,你在做什么,需要从一个文件回溯到父文件:)我们确实有一个多父文件的特定用例。在电话自动取款机上,但如果你愿意,我可以稍后提供详细信息