Drive REST API V3 Java Wrapper - загрузка с прогрессом - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь загрузить новый файл в учетную запись диска с помощью API V3 и получить информацию о ходе загрузки. Мой текущий (рабочий) код следующий:

 val fileMetadata = File()
        fileMetadata.name = newItemName
        fileMetadata.parents = mutableListOf(destFolder.remoteId)

        val osFile = java.io.File(filePath)
        val mediaContent = FileContent(getMimeType(filePath), osFile)

        val file = googleDriveService.files().create(fileMetadata, mediaContent)
                .setFields("*")
                .execute()

Можно ли добавить какой-либо обработчик прогресса в текущее решение или мне нужно использовать другой сервис (например, MediaHttpUploader)?

1 Ответ

0 голосов
/ 03 января 2019

Вы можете обратиться к этой документации , которая использует класс CustomProgressListener.

class CustomProgressListener implements MediaHttpDownloaderProgressListener {
  public void progressChanged(MediaHttpDownloader downloader) {
    switch (downloader.getDownloadState()) {
      case MEDIA_IN_PROGRESS:
        System.out.println(downloader.getProgress());
        break;
      case MEDIA_COMPLETE:
        System.out.println("Download is complete!");
    }
  }
}

OutputStream out = new FileOutputStream("/tmp/driveFile.jpg");

DriveFiles.Get request = drive.files().get(fileId);
request.getMediaHttpDownloader().setProgressListener(new CustomProgressListener());
request.executeMediaAndDownloadTo(out);

Вот дополнительные ссылки, которые вы можете использовать:

...