如何在Java应用程序中使用Google Drive API从公共存档下载文件?
问题描述:
我已经设法了解使用OAuth 2.0凭据授权应用程序访问用户受保护信息的方式。然而,我的应用程序需要从第三方的Drive(不是我的用户的)下载一堆PDF文件。该文件夹是公开的,所以授权应该没有问题。如何在Java应用程序中使用Google Drive API从公共存档下载文件?
我怎么能做到这一点? Java中需要哪些代码和哪些库? 谢谢!
答
您将使用MediaHttpDownloader和MediaHttpDownloaderProgressListener提到here:
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);
您也可以尝试使用示例在此thread。不要忘记官方Google Android samples。