Java: Как преобразовать com.google.api.services.drive.model.File в InputStream? - PullRequest
0 голосов
/ 03 декабря 2018

Я новичок в интеграции Google Drive.Я сохранил изображение в Google Drive и получил этот файл по методу ниже.

File file = getDriveService().files().get(fileId).execute();

Теперь, когда я попытался преобразовать этот файл в InputStream и записать этот InputStream в HttpResponse, тогда файл возвращается, но изображение неотображается.

public InputStream convertGoolgeFileToInputStream( String fileId ) throws IOException {

        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        getDriveService().files().get(fileId).executeAndDownloadTo(outputStream);
        InputStream in = new ByteArrayInputStream(outputStream.toByteArray());
        return in;

        //return getDriveService().files().get(fileId).executeAsInputStream();
}

1 Ответ

0 голосов
/ 03 декабря 2018

Вы можете попробовать проверить пример загрузки Образец диска

private static void downloadFile(boolean useDirectDownload, File uploadedFile)
      throws IOException {
    // create parent directory (if necessary)
    java.io.File parentDir = new java.io.File(DIR_FOR_DOWNLOADS);
    if (!parentDir.exists() && !parentDir.mkdirs()) {
      throw new IOException("Unable to create parent directory");
    }
    OutputStream out = new FileOutputStream(new java.io.File(parentDir, uploadedFile.getTitle()));

    MediaHttpDownloader downloader =
        new MediaHttpDownloader(httpTransport, drive.getRequestFactory().getInitializer());
    downloader.setDirectDownloadEnabled(useDirectDownload);
    downloader.setProgressListener(new FileDownloadProgressListener());
    downloader.download(new GenericUrl(uploadedFile.getDownloadUrl()), out);
  }
...