如何在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