Google drive api 驱动器REST API提供的结果不超过100个

Google drive api 驱动器REST API提供的结果不超过100个,google-drive-api,Google Drive Api,我尝试了驱动器RESTAPI来获取我的共享文件。 我无法得到超过100个结果。我正在使用授权: 这是默认的结果量。您需要提供maxResults查询参数 -你看了吗?这是默认的结果量。您需要提供maxResults查询参数 -您看过了吗?正如@rorschach所说,您需要使用查询参数 要返回的最大文件数。可接受的值为0到1000,包括0到1000。(默认值:100) 如本文所述,您可以通过设置MaxResults将每页返回的记录数设置为1000。确保您正确配置了它。下面是一个示例代码: Fi

我尝试了驱动器RESTAPI来获取我的共享文件。

我无法得到超过100个结果。我正在使用授权:
这是默认的结果量。您需要提供
maxResults
查询参数


-你看了吗?

这是默认的结果量。您需要提供
maxResults
查询参数


-您看过了吗?

正如@rorschach所说,您需要使用查询参数

要返回的最大文件数。可接受的值为0到1000,包括0到1000。(默认值:100)

如本文所述,您可以通过设置
MaxResults
将每页返回的记录数设置为1000。确保您正确配置了它。下面是一个示例代码:

FilesResource.ListRequest request = service.Files.List();
request.MaxResults = 1000;
FileList files = request.Execute();
但是如果你的谷歌硬盘上有超过1000个文件和目录,那么你需要使用
Nextpage
。您可以在上面提供的教程中查看示例代码


编辑:如果使用API v3,则属性为
PageSize
,而不是上述教程中提到的
MaxResults
。设置页面标记是相同的。

正如@rorschach所述,您需要使用查询参数

要返回的最大文件数。可接受的值为0到1000,包括0到1000。(默认值:100)

如本文所述,您可以通过设置
MaxResults
将每页返回的记录数设置为1000。确保您正确配置了它。下面是一个示例代码:

FilesResource.ListRequest request = service.Files.List();
request.MaxResults = 1000;
FileList files = request.Execute();
但是如果你的谷歌硬盘上有超过1000个文件和目录,那么你需要使用
Nextpage
。您可以在上面提供的教程中查看示例代码


编辑:如果使用API v3,则属性为
PageSize
,而不是上述教程中提到的
MaxResults
。设置页面标记是相同的。

正确的答案是,您需要监视nextPageToken并保持获取结果,直到nextPageToken未定义/null

正确的答案是,您需要监视nextPageToken并保持获取结果,直到nextPageToken未定义/null

我将复制并粘贴相同的响应我写道

我也面临同样的问题,所以我做了一些测试,我发现:

  • 如果我尝试使用files.list字段:“files,nextpGetOken”,我只会得到100个文件

  • 如果我尝试使用files.list字段:“files(name,id等,parents),nextPageToken”,我会得到460个文件

  • 如果我尝试使用带有字段的files.list:“files(name,id等),nextPageToken”而不使用父字段,我会得到1000个文件

  • 如果我尝试使用files.list字段:“files(parents),nextpGetOken”,我会得到460个文件


因此,这似乎取决于您请求的字段数量,以及请求的字段之一是否为父字段。

我将复制并粘贴我编写的相同响应

我也面临同样的问题,所以我做了一些测试,我发现:

  • 如果我尝试使用files.list字段:“files,nextpGetOken”,我只会得到100个文件

  • 如果我尝试使用files.list字段:“files(name,id等,parents),nextPageToken”,我会得到460个文件

  • 如果我尝试使用带有字段的files.list:“files(name,id等),nextPageToken”而不使用父字段,我会得到1000个文件

  • 如果我尝试使用files.list字段:“files(parents),nextpGetOken”,我会得到460个文件


因此,这似乎取决于您请求的字段数量,以及请求的字段之一是否为父字段。

我的完整示例代码:

//  This requires the Drive API To be turned on in the Advanced Google Services
function countFilesInFolder() {
  var folderid = DriveApp.getFoldersByName("html").next().getId();
  var query = 'trashed = false and "' + folderid + '"' + " in parents and title contains 'json'"// mimeType ="application/json"';
  var pageToken = null;

  var filesInFolder = Drive.Files.list({
    q: query,
    maxResults: 1000,
    pageSize: 1000,
    pageToken: pageToken,
  });
  pageToken = filesInFolder.nextPageToken;
  var cards = filesInFolder.items.length;
  while (pageToken != null) {
    filesInFolder = Drive.Files.list({
      q: query,
      maxResults: 1000,
      pageSize: 1000,
      pageToken: pageToken,
    });
    cards = cards + filesInFolder.items.length;
    pageToken = filesInFolder.nextPageToken;
  }
  Logger.log("filesInFolder: " + cards);
}

我的完整示例代码如下:

//  This requires the Drive API To be turned on in the Advanced Google Services
function countFilesInFolder() {
  var folderid = DriveApp.getFoldersByName("html").next().getId();
  var query = 'trashed = false and "' + folderid + '"' + " in parents and title contains 'json'"// mimeType ="application/json"';
  var pageToken = null;

  var filesInFolder = Drive.Files.list({
    q: query,
    maxResults: 1000,
    pageSize: 1000,
    pageToken: pageToken,
  });
  pageToken = filesInFolder.nextPageToken;
  var cards = filesInFolder.items.length;
  while (pageToken != null) {
    filesInFolder = Drive.Files.list({
      q: query,
      maxResults: 1000,
      pageSize: 1000,
      pageToken: pageToken,
    });
    cards = cards + filesInFolder.items.length;
    pageToken = filesInFolder.nextPageToken;
  }
  Logger.log("filesInFolder: " + cards);
}

是的,我尝试了maxResults=1000,但仍然得到了100个结果,尽管我有100多个文件。这个答案和@adjuremods的答案都不正确。增加maxResults(比如说1000)并不能保证返回1000个结果。它是“maxResults”而不是“numResults”,所以它只是一个最大值。驱动器可以在第一批中愉快地返回0个结果。显然,您不能查询比实际存在的更多的结果/文件。他在问题中明确指出,他有>100个文件,在这种情况下,maxResults就是他所需要的。是的,我尝试了maxResults=1000,但仍然得到了100个结果,尽管我有100多个文件。这个答案和@adjuremods的答案都不正确。增加maxResults(比如说1000)并不能保证返回1000个结果。它是“maxResults”而不是“numResults”,所以它只是一个最大值。驱动器可以在第一批中愉快地返回0个结果。显然,您不能查询比实际存在的更多的结果/文件。他在问题中明确表示,他有超过100个文件,在这种情况下,maxResults就是他所需要的。仅代码的答案通常可以通过添加对其工作方式和原因的解释来改进。仅代码的答案通常可以通过添加对其工作方式和原因的解释来改进。