2

是否可以使用 Java 中的批处理请求和 nextPageToken 从 Google Drive Api 获取超过 1000 个文件?或者也许还有另一种解决方案可以在 Java 中使用批处理请求获取大量文件而无需 nextPageToken?现在我只得到 460 个文件。

void prepareDataForGrid(final String rootFileName, UI ui) throws IOException {

    driveService = googleDriveUtils.getDriveService(ui);
    JsonBatchCallback<FileList> callback = new JsonBatchCallback<FileList>() {

        @Override
        public void onSuccess(FileList fileList, HttpHeaders httpHeaders) throws IOException {
            files = fileList.getFiles(); // get only 460 files

        }

        @Override
        public void onFailure(GoogleJsonError googleJsonError, HttpHeaders httpHeaders) throws IOException {
            throw new IOException();
        }
    };

    var batch = driveService.batch();
    driveService.files().list()
            .setQ("trashed = false")
            .setSpaces("drive")
            .setFields("nextPageToken, files(name, id, size, parents, modifiedTime, mimeType, webViewLink, createdTime)")
            .setPageSize(1000)
            .setOrderBy("name")
            .queue(batch, callback);
    batch.execute();
}
4

1 回答 1

3

files.list方法的最大页面大小为1000

在此处输入图像描述

如果您需要其他文件,则需要在响应中使用 nextPageToken 并将其添加到以下响应的 pageToken 中。由于这是一个接一个的请求,我认为无法通过批处理来做到这一点。

于 2021-03-24T15:35:33.277 回答