为什么 google 决定忽略 pageSize 参数,为什么在使用不同的页面大小时收集的项目的整体大小不同?下面是一个例子:

Appsactivity.Activities.List  request = service.activities().list()
    .setDriveAncestorId(ancestorId)
    .setGroupingStrategy("driveUi")
    .setSource("drive.google.com")
    .setUserId("me")
    .setPageSize(pageSize);

List<Activity> list = new LinkedList<>();
ListActivitiesResponse response = null;

do {
   response = request.execute();
   List<Activity> fetched = response.getActivities();
   System.out.println("page items: " + fetched.size());

   list.addAll(fetched);
   request.setPageToken(response.getNextPageToken());

} while (request.getPageToken() != null && request.getPageToken().length() > 0);

System.out.println("all items: " + list.size())

当我将 pageSize 设置为 100 时,我将得到 720 个项目(64、71、60、60、76、92、87、74、62、56、18),但是当我将 pageSize 设置为 5 时,结果集包含 810 个项目。是我遗漏了什么还是 API 错误?

编辑

我刚刚通过使用事件时间作为关键检查了 singleEvents 计数。很少有事件被复制,但是当使用不同的 pageSize 时,事件计数之间的显着差异仍然存在。

另一个像这样的问题 google-api-java-client-pagesize

最佳答案

根据以下链接,似乎是错误:

在某些情况下,结果集可能包含 重复项
is-paging-broken-in-drive

以下链接包含页面大小 oscilation 的说明。
drive-api-search-results

关于java - App Engine Java API pageSize,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34846688/

10-11 02:54