Skip to content

Google Drive 存储配置

CloudPaste 支持将 Google Drive 作为存储后端,基于 Google Drive v3 API 实现文件操作。

WARNING

💡 使用GoogleDrive 需要科学上网,自行处理

支持的功能

Google Drive 存储驱动支持以下能力:

  • READER:读取文件和目录
  • WRITER:上传、创建、重命名、删除文件
  • ATOMIC:原子操作支持(批量删除、复制)
  • PROXY:代理访问
  • MULTIPART:分片上传(断点续传)
  • PAGED_LIST:分页目录列表

1. 准备工作

1.0 可直接按照 OpenList 配置文档创建(推荐)

👉 https://doc.oplist.org/guide/drivers/google_drive

点击展开:若按照 OpenList 创建,请跳过此步骤

1.1 创建 Google Cloud 项目

  1. 访问 Google Cloud Console
  2. 创建新项目或选择现有项目
  3. 记录项目 ID

1.2 启用 Google Drive API

  1. 进入 API 和服务
  2. 搜索「Google Drive API」
  3. 点击「启用」

gd-0

1.3 配置 OAuth 同意屏幕

  1. 选择用户类型(外部)
  2. 填写应用信息:
    • 应用名称:例如 CloudPaste
    • 用户支持电子邮件:你的邮箱
    • 开发者联系信息:你的邮箱

gd-00

1.4 创建 OAuth 凭据

  1. 进入 API 和服务凭据
  2. 点击「创建凭据」→ 选择「OAuth 客户端 ID」
  3. 应用类型选择「Web 应用」
  4. 填写名称,并添加授权重定向 URI (这里填写回调地址URL 具体参考第三方工具的回调地址callback)
  5. 创建后记录:
    • 客户端 ID
    • 客户端密钥

gd-1gd-2

  1. 将自己添加到测试用户中,在左侧找到目标对象菜单,点击进入后,找到测试用户下方的+ Add User按钮,点击后输入你的 Google 账号邮箱地址,点击添加, 添加后顺便发布了

gd-4

  1. 到现在就已经完成了过程,把之前得到的ID和密钥在第三方API工具中直接填入,然后“不使用在线地址”点击获取刷新令牌,随后在Cloudpaste的存储配置中,依次填入ID和密钥和刷新令牌即可

1.5 获取 Refresh Token

使用第三方工具

可以使用 Google Drive Token 获取工具 等第三方工具简化获取流程。

1.6 另一种方式认证

  1. 无需ID和密钥,在第三方API工具中勾选“使用在线地址”后,点击直接获取,即可得到刷新令牌
  2. 刷新令牌填入Cloudpaste的存储配置,开启“在线地址”勾选,同样填入在线 API 地址
  3. 此时配置中只需要“在线 API 地址”和刷新令牌即可完成。

2. 新建 Google Drive 存储配置

  1. 登录 CloudPaste 后台 → 存储配置
  2. 点击「新建存储配置」
  3. 在「存储类型」下拉中选择 Google Drive
  4. 填写配置信息(见下文)
  5. 保存后,在「挂载管理」中为这个存储创建挂载点

3. 字段说明

3.1 基本信息

  • 配置名称 任意便于识别的名字,例如「个人 Google Drive」「团队共享盘」

  • 存储容量限制(可选)

    • 只影响 CloudPaste 自己的配额计算
    • 超出后会触发 CloudPaste 的限额提示

3.2 认证配置

这些字段决定 CloudPaste 如何连接你的 Google Drive

  • 客户端 ID(client_id) 必填

    • Google Cloud OAuth 客户端 ID
    • 示例:123456789012-xxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com
  • 客户端密钥(client_secret) 必填

    • Google Cloud OAuth 客户端密钥
    • 会在后端加密存储
    • 编辑配置时,密码留空 = 不修改原有密码
  • 刷新令牌(refresh_token) 必填

    • OAuth 2.0 刷新令牌
    • 用于自动获取和刷新访问令牌
    • 会在后端加密存储

3.3 高级配置

  • 根目录 ID(root_id)(可选)

    • 指定 Google Drive 中的起始目录 ID
    • 留空默认为 root(用户的云端硬盘根目录)
    • 共享盘场景:填写共享盘的 ID
    • 示例:0B1234567890abcdefghij
  • 启用磁盘使用统计(enable_disk_usage)(可选)

    • 勾选后,可在存储详情中查看配额使用情况
    • 会调用 Google Drive 的 about.get API 获取存储配额
  • 启用"与我共享"视图(enable_shared_view)(可选,默认启用)

    • 勾选后,挂载根目录下会出现一个虚拟目录 __shared_with_me__
    • 可浏览其他用户共享给你的文件
    • 注意:此目录为只读视图
  • Token 续期端点(api_address)(可选)

    • 自定义 token 刷新服务的 URL
    • 如果不填,将直接使用 Google 官方 OAuth 端点
    • 适用场景:使用第三方 token 管理服务
  • 使用 Online API(use_online_api)(可选)

    • 勾选后,将使用 Online API 协议调用 token 续期端点
    • 仅在配置了 api_address 时生效

4. 特殊功能说明

4.1 "与我共享"虚拟视图

当启用 enable_shared_view 后,挂载根目录下会出现一个名为 __shared_with_me__ 的虚拟目录:

  • 用途:浏览其他用户通过 Google Drive 共享给你的文件和文件夹
  • 特点
    • 只读视图,不支持在此目录下上传或修改
    • 文件实际存储在共享者的 Drive 中
    • 支持下载和预览共享的文件
  • 禁用:如不需要此功能,可在存储配置中取消勾选

4.2 共享盘(Shared Drives)支持

如果你使用的是 Google Workspace 的共享盘:

  1. root_id 中填写共享盘的 ID
  2. 确保 OAuth 账户有权限访问该共享盘
  3. 所有文件操作将在该共享盘中进行

4.3 分片上传

Google Drive 存储支持断点续传式分片上传:

  • 自动处理大文件上传
  • 支持前端直传模式
  • 空文件(0 字节)通过 metadata 创建,不占用上传流量

5. 挂载与权限配合

Google Drive 存储配置保存后,需要在「挂载管理」中为其创建挂载点:

  1. 进入 挂载管理 → 新建挂载
  2. 选择存储类型为 Google Drive 的那条存储配置
  3. 填写挂载路径(如 /gdrive)、备注等
  4. 视情况开启:
    • Web 代理:是否强制 Web 场景走 CloudPaste 代理
    • 启用签名:是否对 /api/p / 代理入口签名保护
    • 直链策略native_direct / proxy / use_proxy_url

同时,Google Drive 存储配置中有一个 允许 API 密钥使用(is_public) 选项:

  • 勾选后,API 密钥可以在其「挂载路径」范围内使用该存储
  • 配合 API 密钥的 basic_path 和挂载路径,可以精确限制访问范围

详细的挂载与权限说明,可参考:

6. 常见问题

6.1 连接失败 / 无法获取访问令牌

可能原因:

  • client_idclient_secret 错误
  • refresh_token 已过期或无效
  • Google Cloud 项目未启用 Drive API
  • OAuth 同意屏幕未正确配置

解决方法:

  1. 检查 Google Cloud 项目配置是否正确
  2. 确认 Drive API 已启用
  3. 重新获取 refresh_token
  4. 检查 OAuth 同意屏幕的范围设置

6.2 上传失败或速度很慢

可能原因:

  • 网络延迟较高
  • Google Drive API 限流
  • 文件过大

解决方法:

  1. 检查 CloudPaste 与 Google Drive 之间的网络连接
  2. 大文件上传会自动使用 resumable upload
  3. 如遇到限流,稍后重试

6.3 Refresh Token 过期

现象:

  • 提示「无法获取访问令牌」
  • 日志显示「invalid_grant」错误

解决方法:

  1. Refresh token 可能因长时间未使用而失效
  2. 重新执行授权流程获取新的 refresh_token
  3. 在 CloudPaste 中更新存储配置

6.4 无法访问共享盘

可能原因:

  • root_id 填写错误
  • OAuth 账户无权限访问该共享盘

解决方法:

  1. 确认共享盘 ID 正确(可从 Google Drive 网页版 URL 中获取)
  2. 确保授权账户是共享盘的成员
  3. 检查 OAuth 范围是否包含 drive 权限

6.5 "与我共享"目录不显示

可能原因:

  • enable_shared_view 未启用

解决方法:

  1. 编辑存储配置,勾选「启用"与我共享"视图」
  2. 保存后刷新目录列表

7. 参考资源

基于 Apache License 2.0 许可发布