如何通过谷歌驱动器API获取准确的文件列表

问题描述:

我正在开发一个使用谷歌驱动器API(java版本)的应用程序。该应用程序将文件保存在模仿文件系统的Google驱动器上(即具有文件夹树)。我开始使用files.list()方法检索Google驱动器上的所有现有文件,但随着文件数量增加(几百个之后),响应速度变慢。如何通过谷歌驱动器API获取准确的文件列表

java Google API将响应超时值硬编码为20秒。我改变了代码递归地加载一个文件夹(使用files.list().setQ("'folderId' in parents))。这种方法可以解决超时问题,但它一直会丢失我文件夹中大约2%的文件(每次都丢失相同的文件)。如果我直接搜索文件名files.list().setQ("title='filename'"),我可以通过Google驱动器Web浏览器界面甚至通过Google驱动器API查看这些文件。

我假设“在家长”搜索使用一些不准确的索引,可能只会定期更新。我需要一个更强大和准确的文件列表。

任何想法?

+0

只是要清楚 - 我总是调用setMaxResults(100000),所以它不是我达到默认的100限制。 – 2013-02-28 18:55:05

+0

我提高了这一点,因为我正在浏览器上使用gdrive减少设备。我目前将这个列表存储在一个json文件中。我使用它来轮询更新/更改,因为我遇到了上面提到的确切问题。 – 2013-02-28 22:22:35

您可以利用Page机制来做多次查询吗?每个查询只需要一小堆结果?

+0

我认为这是我的问题,我已经更新到最新的API,一切都很好。 – 2017-04-04 23:18:04