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