Получите более 1000 файлов из Google Drive Api с помощью пакетного запроса и nextPageToken на Java

Можно ли получить более 1000 файлов из Google Drive Api с помощью пакетного запроса и nextPageToken в Java? Или, может быть, есть другое решение для получения большого количества файлов без nextPageToken с помощью пакетного запроса на Java? Сейчас у меня всего 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();
}

1 ответ

Максимальный размер страницы для метода files.list - 1000

Если вам нужны дополнительные файлы, вам нужно будет использовать nextPageToken в ответе и добавить его в pageToken следующего ответа. Поскольку это один запрос за другим, я не вижу возможности сделать это с помощью пакетной обработки.

Другие вопросы по тегам