gdirect:一款支持自动 IP 探测与多线程传输的终端 Google 云盘管理工具

gdirect 是一款专为终端用户设计的 Google 云盘(Google Drive)管理工具。它通过自动扫描并探测当前网络环境下可连通的 Google IP,实现了云盘流量(浏览、下载、上传)的直连传输,同时支持多线程下载与断点续传,为在网络受限环境下高效管理云盘文件提供了一套优雅的解决方案。

核心机制与工作原理

gdirect 的核心优势在于其智能的流量分流机制,确保在绕过网络限制的同时维持连接的安全性与稳定性:

  • 数据流量直连:在执行 browse、ls、download 和 upload 等命令时,工具会自动扫描候选 Google IP,并在 24 小时内沿用延迟最低的可用 IP 进行直连。在此过程中,主机名和 TLS 证书校验保持不变,用户也可通过 --sni 或 --no-sni 参数灵活调整 SNI 行为。
  • 认证流量走系统网络:登录与刷新令牌(指向 oauth2.googleapis.com)以及基于 rclone 的挂载操作,均通过系统默认网络(含系统 DNS 或代理)进行,确保认证流程的可靠性。
  • 网络环境适配:若用户使用 TUN 模式的代理或 VPN(如 Clash/Mihomo),需将 gdirect scan --list 扫描出的 Google IP 设为 DIRECT 直连,并关闭对这些 IP 的 fake-ip 解析,防止流量被代理软件重新接管导致扫描失败。

核心功能特性

  • 交互式终端浏览:内置类似 Vim 的交互式界面(支持 j/k 或方向键导航),用户可直观地浏览目录、进入文件夹、刷新视图,并直接将文件加入下载队列。Google 文档、表格和幻灯片可一键导出为 PDF。
  • 高效传输与完整性校验:下载支持多线程(默认 8 连接,可在 1-16 间动态调整)和断点续传。每次下载完成后,工具会自动与 Drive 记录的 MD5 校验和进行比对,确保文件完整性。上传操作则默认新建文件,避免意外覆盖云端同名文件。
  • 灵活的命令行控制:支持通过文件 ID 或分享链接直接下载,支持指定导出格式(如 --export application/pdf),并允许通过 --ip 参数手动指定 Google IP 以绕过自动扫描。

跨平台挂载支持

通过集成 rclone,gdirect 提供了强大的云盘挂载能力,将云端存储映射为本地文件系统:

  • 多平台适配:macOS 利用系统原生 NFS 实现挂载;Linux 依赖 FUSE3;Windows 则通过 WinFsp 实现,且在前台运行,支持 Ctrl-C 安全停止。
  • 异步写入与缓存管理:写入本地的文件会先进入本地缓存,随后在后台异步上传。缓存大小通常控制在 5 GiB 以内。卸载(unmount)时会保留未上传完毕的文件,待下次挂载时继续完成,确保数据不丢失。

安装与配置指南

gdirect 提供了极简的部署体验,预编译包支持 macOS (15+, Apple Silicon/Intel)、Linux (glibc 2.35+) 和 Windows (x86_64)。

  1. 一键安装:
    • macOS/Linux:curl -fsSL https://raw.githubusercontent.com/mizorewww/gdirect/main/scripts/install.sh | bash
    • Windows:通过 PowerShell 执行官方安装脚本。
    • 注:若需使用挂载功能,可在安装命令末尾添加 --with-mount(Windows 为 -WithMount),脚本将自动安装 rclone 及对应的 FUSE/WinFsp 依赖。亦可通过 Homebrew 安装。
  2. OAuth 配置:
    出于安全考虑,gdirect 不提供共用客户端。用户需在 Google Cloud Console 中创建一个“桌面应用 (Desktop app)”类型的 OAuth 客户端,下载 JSON 凭证文件,并执行 gdirect login --client-secret <路径> 完成一次性授权。
  3. 数据存储:
    所有凭据、扫描到的 IP 列表及配置均安全存储在本地私有 SQLite 数据库中(如 Linux 下的 ~/.local/share/gdirect/state.sqlite3)。支持通过 gdirect logout 清除凭据,或使用 --reauth 切换账号。