java - 使用 Java 从 Google Drive 下载文件

标签 java google-drive-api

我的最终目标是编写一个简单的程序,在每周结束时将一个特定的 Google 电子表格下载到我的本地硬盘上。该文件将由其他人每周编辑一次,我将不断需要下载更新版本以提取数据并传递给我编写的 bash 脚本。我现在手动执行此操作,但如果我可以拉取 csv 格式的电子表格,则可以自动化整个过程。

我对 Google 的文档有点困惑。我已经复制了他们的示例方法 downloadFile,但仍不清楚正在传递的确切参数以及 InputStream 返回。

如果我要添加一个 main 方法来调用 downloadFile 方法,我传递的示例参数是什么。

那么我可以使用它返回的InputPut流来将文件保存为csv格式吗?

此外,这是我需要的唯一方法还是还有更多方法?

downloadFile 方法在这里定义(省略导入语句):

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) {
            e.printStackTrace();
            return null;
        }
    }
    else {
        return null;
    }
}

最佳答案

对于第二个参数,您需要 File 类的实例。据我了解。 Google 专有的 File 类以其最简单的形式可以用零参数实例化。像这样。

File f = new File();

要构建驱动对象,有一个关于如何构建驱动对象的示例。向下滚动到使用 OAUTH 2.0 凭据。 https://developers.google.com/drive/credentials

关于java - 使用 Java 从 Google Drive 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15418366/

相关文章:

java - 如何组合多个 IMAP 获取命令?

java - 将 map 的第一个元素添加到另一个列表的第一个位置,依此类推...将第二个 map 元素添加到列表的第二个位置

google-apps-script - 有没有办法为 Google Drive 文件夹中的所有视频添加水印?

google-drive-api - 如何通过 API 了解谁在 Google 云端硬盘的共享云端硬盘(团队云端硬盘)中创建了该文件

google-drive-api - Google Drive API 限制导出下载 10 mb 的策略

java - Parse.com 查询 findInBackground 不返回任何数据

java - 文本框中的新行 (JavaFX 2.0)

java - 所需 bundle 的状态已解决而不是 Activity

google-chrome-extension - 从 Google Chrome(内容)扩展程序写入 Google 表格

google-drive-api - 使用 https ://spreadsheets. google.com/feeds/时是否需要迁移到 Drive API