Google Drive API:一次列出所有文件

问题描述 投票:0回答:3

目前,我正在使用下面的

Files: list
API 来获取所有文件
https://developers.google.com/drive/api/v3/reference/files/list

随附的屏幕截图包含我提供的地方使用的参数(pagesize = 1000)。每次调用仅返回 1000 个文件。我必须设置(之前响应中的 pageToken='nextPageToken' 值)

有没有办法让 API 返回所有文件而不必设置(pageToken='nextPageToken' 值来自先前的响应)?请指教 enter image description here

google-api google-drive-api google-workspace
3个回答
1
投票

答案:不,没有办法在不分页的情况下列出超过 1000 个文件。

其他信息。

如果您检查自己拥有的文档链接

enter image description here

您会注意到它声明默认页面大小为100,这意味着如果您不发送页面大小参数,系统将自动将其设置为100。

您还会注意到它指出

Acceptable values are 1 to 1000, inclusive.
这意味着您可以将页面大小最大设置为 1000

如果您想要其他文件,则需要使用 nextpagetoken 来获取另一组行。

如果您想要的行数超过 1000 行,则没有其他方法可以解决分页问题。 我不知道你在做什么,但也许使用 Q 参数来搜索你正在寻找的文件,从而将响应限制在 1000 以下。


0
投票

另请注意,我的测试表明,“我的云端硬盘”可返还 100 美元,“共享云端硬盘”可返还 460 美元(?)。无论哪种类型我都没有拿回 1000 美元。您需要依次迭代每个“页面”


0
投票

我不知道你使用什么编程语言,但在 dotnet 中我有类似的东西,多亏了这个,我可以获得驱动器拥有的所有文件。

var listRequest = _driveService.Files.List();
listRequest.Q = $"'{_appSettings.GoogleDrive.FolderId}' in parents";
listRequest.Fields = "files(id, name)";

如果还有其他页面 listRequest 将返回“PageToken”。借助该酒店,您可以再次提出请求。利用循环,您可以收集该文件夹拥有的所有文件。

© www.soinside.com 2019 - 2024. All rights reserved.