Google 驱动器 API 仅列出每个文件夹最多 100 个文件
Google Drive API just listing up to 100 files per folder
我正在使用 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? that there is a way to do this but NumberToRetrieve
does not work. I tried to test it in the Drive API reference webpage (https://developers.google.com/drive/v2/reference/files/list) 中找到了它,但它给了我一个错误。当我从我的代码中请求列表时,我也不知道如何放置这个参数(我是 Drive API 的新手)。
提前致谢。
编辑:我找到了一种使用 MaxResuls
标志增加文件数量的方法。但它最多只允许列出 1000 个,这还不够。
所有 REST APIs 对其输出列表进行分页是非常标准的。 Drive API 也不例外。您只需监视 JSON 响应中是否存在 nextPageToken 并递归访问后续页面。
注意。不要像某些人那样错误地认为小于 MaxResults 的响应是最后一页。您应该完全依赖 nextPageToken。
顺便说一句,一旦您的代码中有了分页功能,请考虑将 maxResults 设置回默认值。我怀疑非默认值没有经过很好的测试,而且更容易超时。
查询的默认最大结果为 100。必须使用 pageToken/nextPageToken 重复。请参阅 Python Google 驱动器 API - 列出整个驱动器文件树
"结果=service.files().list(
pageSize = 1000, q="'xxx' in parents",fields="nextPageToken, files(id, name)").execute()"
这对我有用。
我正在使用 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? that there is a way to do this but NumberToRetrieve
does not work. I tried to test it in the Drive API reference webpage (https://developers.google.com/drive/v2/reference/files/list) 中找到了它,但它给了我一个错误。当我从我的代码中请求列表时,我也不知道如何放置这个参数(我是 Drive API 的新手)。
提前致谢。
编辑:我找到了一种使用 MaxResuls
标志增加文件数量的方法。但它最多只允许列出 1000 个,这还不够。
所有 REST APIs 对其输出列表进行分页是非常标准的。 Drive API 也不例外。您只需监视 JSON 响应中是否存在 nextPageToken 并递归访问后续页面。
注意。不要像某些人那样错误地认为小于 MaxResults 的响应是最后一页。您应该完全依赖 nextPageToken。
顺便说一句,一旦您的代码中有了分页功能,请考虑将 maxResults 设置回默认值。我怀疑非默认值没有经过很好的测试,而且更容易超时。
查询的默认最大结果为 100。必须使用 pageToken/nextPageToken 重复。请参阅 Python Google 驱动器 API - 列出整个驱动器文件树
"结果=service.files().list( pageSize = 1000, q="'xxx' in parents",fields="nextPageToken, files(id, name)").execute()"
这对我有用。