我正在创建一个应用程序来使用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个,而且还不够。
答案 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()"
这对我有用。