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

And*_*rés 1 python google-drive-api

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

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

有什么办法可以改变列出的文件的数量吗?我在此线程中发现Google Drive List API - 未列出所有文档?有一种方法可以做到这一点,但NumberToRetrieve行不通。我尝试在 Drive API 参考网页( https://developers.google.com/drive/v2/reference/files/list )中测试它,但它给了我一个错误。当我从代码中请求列表时,我也不知道如何放置此参数(我是使用 Drive API 的新手)。

提前致谢。

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

pin*_*yid 5

对所有 REST API 的输出列表进行分页是相当标准的。Drive API 也不例外。您只需监视 JSON 响应中是否存在 nextPageToken 并递归访问连续的页面即可。

注意。不要犯这样的错误,因为有些人会假设小于 MaxResults 的响应是最后一页。您应该仅依赖 nextPageToken。

顺便说一句,一旦您在代码中使用分页功能,请考虑将 maxResults 设置回默认值。我怀疑非默认值没有经过很好的测试,而且更容易超时。