【问题标题】:Google Drive REST Api download file by its fileIdGoogle Drive REST Api 通过其 fileId 下载文件
【发布时间】:2018-12-07 11:15:38
【问题描述】:

大家好,我遇到了问题。在我的应用程序中,我将用户之前在 GoogleDrive 文件选择器中选择的文件的 fileId 存储起来。我还在设备中存储了该文件的本地副本。每次启动后我想刷新本地文件,所以我想从驱动器下载它们。但我不清楚,我应该怎么做。
我看到了this documentation,但我不明白在哪里可以得到driveService,它在这段代码中使用

driveService.files().get(fileId)
    .executeMediaAndDownloadTo(outputStream);

我不知道这段代码中的driveService 是什么。 (哪个类实例)以及如何获取它
请帮帮我,谢谢。

附言
对不起我的英语不好

【问题讨论】:

    标签: java android kotlin google-api google-drive-api


    【解决方案1】:

    您应该查看resumable Media Downloads 下的文档,它可能会给您一些线索。

    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);
    

    【讨论】:

    • 也许我有些看不懂,但在这段代码中,“driveService”只重命名为“drive”,没有别的。但这是我最大的问题,我不知道这段代码中的“驱动器”是什么
    【解决方案2】:
    BaseClientService service = new DriveService(new BaseClientService.Initializer()
     {
     HttpClientInitializer = credential,
     ApplicationName = "Drive API Sample",
     });
    

    你应该检查这个堆栈答案,也许它会帮助你理解它: How do you create a new Google Drive Service in C# using OAuth

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多