目前,我正在使用下面的
Files: list
API 来获取所有文件
https://developers.google.com/drive/api/v3/reference/files/list
随附的屏幕截图包含我提供的地方使用的参数(pagesize = 1000)。每次调用仅返回 1000 个文件。我必须设置(之前响应中的 pageToken='nextPageToken' 值)
有没有办法让 API 返回所有文件而不必设置(pageToken='nextPageToken' 值来自先前的响应)?请指教
答案:不,没有办法在不分页的情况下列出超过 1000 个文件。
其他信息。
如果您检查自己拥有的文档链接
您会注意到它声明默认页面大小为100,这意味着如果您不发送页面大小参数,系统将自动将其设置为100。
您还会注意到它指出
Acceptable values are 1 to 1000, inclusive.
这意味着您可以将页面大小最大设置为 1000
如果您想要其他文件,则需要使用 nextpagetoken 来获取另一组行。
如果您想要的行数超过 1000 行,则没有其他方法可以解决分页问题。 我不知道你在做什么,但也许使用 Q 参数来搜索你正在寻找的文件,从而将响应限制在 1000 以下。
另请注意,我的测试表明,“我的云端硬盘”可返还 100 美元,“共享云端硬盘”可返还 460 美元(?)。无论哪种类型我都没有拿回 1000 美元。您需要依次迭代每个“页面”
我不知道你使用什么编程语言,但在 dotnet 中我有类似的东西,多亏了这个,我可以获得驱动器拥有的所有文件。
var listRequest = _driveService.Files.List();
listRequest.Q = $"'{_appSettings.GoogleDrive.FolderId}' in parents";
listRequest.Fields = "files(id, name)";
如果还有其他页面 listRequest 将返回“PageToken”。借助该酒店,您可以再次提出请求。利用循环,您可以收集该文件夹拥有的所有文件。