[我想做的是从Google云端硬盘文件创建本地文件树(就像缓存一样工作,因此我不必每次都需要文件信息时发出HTTP请求(Google的配额有限) API)。可以找到代码here。
我最好的方法是一次请求所有文件,因此我有一个庞大的File列表,没有太多的HTTP请求,我可以将它们链接起来以创建树。通过对文件进行一些技巧来完成这种工作,但是问题是我得到的文件比我需要的多得多(收到9729个,有用的1764个),因为我无法想到一个有效的[C0 ]转到filter服务。我正在下载所有文件(包括sharedWithMe,除了垃圾桶,因为它有一个简单的过滤器list,也只下载了必需的字段),并且由于不必要的数据,它比需要的时间要长得多。
我只是想获取MyDrive(根)文件夹(有一些trashed = false
,我不能简单地通过使用files that are sharedWithMe and are also under MyDrive忽略它们)下的文件)。换句话说,我只想获取处于根级别的文件,属于子级别的文件的子级文件等等。有查询吗?或至少使其更有效率?
注意:这不是q = 'me' in owner
。
我发现创建树的最佳方法是:
q: mimeType = 'application/vnd.google-apps.folder'
也可能有用。trashed = false
获取file.list(请注意主体尺寸过大(可能超过25,000个字符,不确定)的过于复杂的查询错误)。这样做,会有一些无用的数据和一些请求,但是下载的数据量比没有q = 'mimeType != 'application/vnd.google-apps.folder' and (folderId1' in parents or 'folderId2 in parents or ... or 'folderIdN' in parents)
限制的列表文件少得多。
这个想法来自关于q
的答案的[[替代3。