You need to enable JavaScript to run this app. 如何使用Google Drive API访问并下载谷歌云端硬盘私有共享文档?
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Google Drive API访问并下载谷歌云端硬盘私有共享文档?

Google Drive API访问共享文件问题解答

能否用获取个人云端硬盘文档的相同方式访问他人私下共享的文件

可以,默认调用Drive API的files.list接口仅返回你本人所有的文件,原因是默认查询参数过滤了非本人所有的内容。你只需修改接口的q查询参数,添加sharedWithMe = true条件,即可拉取所有他人共享给你的文档列表,操作逻辑和拉取个人文档完全一致。

拥有查看权限的共享文档是否可以通过API下载

可以,只要对方给你的账号授予了至少查看权限,就可以通过API下载该文档,分两种场景处理:

  • 普通二进制文件(含图片、PDF、压缩包、Office文档等非Google Workspace格式文件):直接调用files.get接口并添加alt=media参数即可流式下载文件内容
  • Google Workspace格式文件(含Google Docs、Google Sheets、Google Slides等谷歌在线文档):无法直接下载源文件,需要调用files.export接口导出为你需要的目标格式(例如docx、xlsx、pdf等)后再获取导出内容

Spring Boot项目实现参考

前置依赖配置

首先在项目的pom.xml中引入Google Drive API客户端依赖,如果是Gradle项目对应调整依赖配置即可。

核心代码示例

1. 拉取共享给你的文档列表

// 构造查询条件,过滤已删除的共享文件
String sharedFileQuery = "sharedWithMe = true AND trashed = false";
// 调用接口拉取列表,指定返回需要的字段即可
FileList sharedFiles = driveService.files().list()
        .setQ(sharedFileQuery)
        .setFields("files(id, name, mimeType, size)")
        .execute();

2. 下载普通共享文件

String targetFileId = "你要下载的文件ID";
try (OutputStream out = new FileOutputStream("本地保存的文件路径")) {
    driveService.files().get(targetFileId)
            .executeMediaAndDownloadTo(out);
}

3. 导出Google Docs格式文件为PDF

String googleDocsFileId = "Google Docs文件ID";
try (OutputStream out = new FileOutputStream("本地保存路径/导出文件.pdf")) {
    driveService.files().export(googleDocsFileId, "application/pdf")
            .executeMediaAndDownloadTo(out);
}

注意事项

  • OAuth2授权时至少申请https://www.googleapis.com/auth/drive.readonly权限即可满足上述需求,无需申请全量读写权限
  • 如果需要拉取指定共享文件夹下的内容,可将查询条件修改为'共享文件夹ID' in parents AND trashed = false

内容的提问来源于stack exchange,提问作者Saumya Shah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 05:24:03