如何使用drive api java从谷歌驱动器下载文件?

Ram*_*r P 6 java google-drive-api

我尝试了一些谷歌硬盘的功能,但我无法从云端硬盘下载该文件.

这是我使用的代码

private static InputStream downloadFile(Drive service, File file) {
    if (file.getDownloadUrl() != null && file.getDownloadUrl().length() > 0) {
      try {
        HttpResponse resp =
            service.getRequestFactory().buildGetRequest(new GenericUrl(file.getDownloadUrl()))
                .execute();
        return resp.getContent();
      } catch (IOException e) {
        // An error occurred.
        e.printStackTrace();
        return null;
      }
    } else {
      // The file doesn't have any content stored on Drive.
      return null;
    }
  }
Run Code Online (Sandbox Code Playgroud)

当我运行脚本时,它显示file.getDownloadUrl()为NULL.

我在这里想念的是什么?

现在它在我调用下载函数之前添加以下行之后执行

File file1 = service.files().get(fileid).execute();
downloadFile(service,file1);
Run Code Online (Sandbox Code Playgroud)

现在的问题是如何在脚本的"响应"的帮助下下载文件....

Cla*_*ino 5

Google文档原生格式的文档没有downloadUrl字段,您可以使用该exportLinks集合导出它们:

https://developers.google.com/drive/manage-downloads#downloading_google_documents

  • 凉.谢谢.我认为谷歌应该在用户尝试获取'downloadUrl'或'webContentLink'时回应404错误.或者Google Drive SDK应该在用户这样做时抛出异常.这会让事情变得清晰! (2认同)