0

有没有办法将谷歌驱动文件下载到自定义位置?我正在使用此代码来获取文件,

courses.get(0).getCourseMaterialSets().get(0).getMaterials().get(0).getDriveFile()

此函数返回文件类型输出。如何在本地保存?

或者有什么方法可以使用教室 API 下载谷歌驱动器文件?

4

1 回答 1

0

我认为没有办法使用 Classroom API 来做到这一点。要从 Google Drive 下载文件,请查看使用Android API for Drive下载文件教程。

下载文件

首选方法:使用 alt=media

要下载文件,您向文件的资源 URL 发出授权的 HTTP GET 请求并包含查询参数 alt=media。例如:

GET https://www.googleapis.com/drive/v2/files/0B9jNhSvVjoIVM3dKcGRKRmVIOVU?alt=media

授权:承载 ya29.AHESVbXTUv5mHMo3RYfmS1YJonjzzdTOFZwvyOAUVhrs 下载文件需要用户至少具有读取权限。此外,您的应用程序必须获得允许读取文件内容的范围的授权。例如,使用 drive.readonly.metadata 范围的应用程序将无权下载文件内容。具有编辑权限的用户可以通过将限制标签设置为 true 来限制只读用户的下载。

这是指南中的一个片段:

/**
   * Download a file's content.
   *
   * @param service Drive API service instance.
   * @param file Drive File instance.
   * @return InputStream containing the file's content if successful,
   *         {@code null} otherwise.
   */
  private static InputStream downloadFile(Drive service, File file) {
    if (file.getDownloadUrl() != null && file.getDownloadUrl().length() > 0) {
      try {
        // uses alt=media query parameter to request content
        return service.files().get(file.getId()).executeMediaAsInputStream();
      } catch (IOException e) {
        // An error occurred.
        e.printStackTrace();
        return null;
      }
    } else {
      // The file doesn't have any content stored on Drive.
      return null;
    }
  }
于 2016-10-14T14:42:44.563 回答