Google云端硬盘分页文件列表

时间:2013-12-20 06:46:29

标签: pagination google-drive-api google-drive-realtime-api

我的Google云端硬盘API存在问题

我要求对结果进行分页,以便仅显示页数限制为50的文件。我使用以下查询进行了此操作。

“父母的身份和mimeType!='application / vnd.google-apps.folder'和trashed = false”

但是在输出中我看到页面限制一直在变化。有时候显示47,46,...等等。很少50。

我认为这个问题是因为在获取50个文件并将API的响应返回给我的应用程序后过滤文件夹。

是否有其他方法可以正确获取分页并仅从API调用中检索文件


感谢您的回复。实际上我需要对每页50个文件限制(仅限文件)进行分页,以解决Google云端硬盘经常遇到的会话超时问题。

考虑以下场景:我的文件夹中有200个文件,其中[98个文件+102个文件夹]的页面限制为100个。

对API的第一个请求:内部提取100个[文件+文件夹]并将98个文件和页面标记返回给我的应用程序。

问题:根据我的要求,我应该每页显示100个文件,但现在我只显示98个说我们有更多文件可用,因为我有下一页令牌。如果我在启用查看更多选项之前尝试检查是否有更多可用文件,则会导致更多API调用,直到找到文件或页面标记为空,这可能会增加会话超时的可能性。

对API的第二次请求:因为当用户点击它时启用了更多视图,我们不会获取任何内容,因为剩下的是文件夹。

是否有其他方法可以满足我减少会话超时问题的要求。

1 个答案:

答案 0 :(得分:2)

没有。 Drive API完成的分页并非与您的应用显示结果的方式直接一对一。

如果您使用的是drive.file范围,这一点尤为明显。 afaik,API层将从Drive基础结构中请求maxResults项,然后过滤掉您的应用无权查看的任何项。在极端情况下,如果所有(例如)50个项目都没有权限,则可能导致零结果。

所以你需要或多或少地忽略maxCount并简单地循环遍历nextPage。自然的诱惑是将其设置为最大值1000以减少分页。好主意,但这通常会导致谷歌内部超时。因此,我的建议是将其保留为默认值(即100),因为这可能是最受测试的,因此也是最可靠的设置。