Google Drive API仅列出每个文件夹最多100个文件

时间:2015-02-11 19:37:20

标签: python google-drive-api

我正在创建一个应用程序来使用Python备份存储在Google云端硬盘中的文件。我遇到的第一个问题是,由于某种原因,它只能在每个文件夹中列出最多100个文件。我想我使用了正确的范围(' https://www.googleapis.com/auth/drive'),这是我用来列出文件夹内容的代码行

folder_contents = service.files().list( q="'%s' in parents" % folder['id'] ).execute()

有没有办法改变列出的文件数量?我在这个帖子Google Drive List API - not listed all the documents?中发现有一种方法可以做到这一点,但NumberToRetrieve不起作用。我尝试在Drive API参考网页(https://developers.google.com/drive/v2/reference/files/list)中测试它,但它给了我一个错误。当我从我的代码中请求列表时,我也无法弄清楚如何放置此参数(我使用的是Drive API)。

提前致谢。

编辑:我找到了一种使用MaxResuls标志增加文件数量的方法。但它只允许列出最多1000个,而且还不够。

3 个答案:

答案 0 :(得分:4)

所有REST API都可以对其输出列表进行分页。 Drive API也不例外。您只需要在JSON响应中监视nextPageToken的存在,并通过连续的页面进行递归。

NB。不要犯这个错误,因为有些人认为小于MaxResults的响应是最后一页。你应该完全依赖nextPageToken。

顺便说一下,一旦你的代码中有分页功能,可以考虑将maxResults设置回默认值。我怀疑非默认值测试不太好,而且更容易超时。

答案 1 :(得分:0)

查询的默认最大结果为100.必须使用pageToken / nextPageToken重复它。请参阅Python Google Drive API - 列出整个驱动器文件树

答案 2 :(得分:0)

" results = service.files()。list(         pageSize = 1000,q ="' xxx'在父母",fields =" nextPageToken,文件(id,name)")。execute()"

这对我有用。