Получите более 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 следующего ответа. Поскольку это один запрос за другим, я не вижу возможности сделать это с помощью пакетной обработки.