DriveBridge 是一个面向 Windows 的 Google Drive 大批量增量下载工具。它基于系统自带的 robocopy,支持多账号并行、断点续传、多个历史目录联合去重、实时进度、定时刷新文件清单和目标盘容量保护。
适用于 Google Drive for desktop 挂载目录持续产生新文件的场景,例如 Google Earth Engine 导出结果、长期实验产物和大批量归档数据。
- 多个 Google Drive 源目录并行下载,每个源一个独立任务。
- 使用
robocopy /Z断点续传,网络或 Drive 虚拟盘短暂错误后自动重试。 - robocopy 详细日志使用 Unicode,中文路径不依赖系统代码页。
RecognitionDirectories可配置多个已下载目录;任一目录存在完整文件即跳过。- 所有新文件只写入唯一的
Destination,历史识别目录只读不改。 - 每秒显示完成比例、当前速度、平均速度、文件数和当前文件。
- 定时刷新源清单;发现新文件后等待当前文件完整落盘,再只重启对应账号。
- 目标盘剩余容量低于阈值时停止全部任务并保留断点。
- 关闭 CMD/PowerShell 窗口时,通过 Windows Job Object 自动结束子
robocopy。 - 可选的 Google Drive 缓存占用检查与安全清理。
- Windows 10/11
- PowerShell 7(命令
pwsh) - Google Drive for desktop(用于挂载源目录)
- 系统自带
robocopy
-
下载或克隆仓库。
-
复制示例配置:
Copy-Item .\config.example.psd1 .\config.psd1 -
编辑
config.psd1,至少修改Sources、Destination和RecognitionDirectories。 -
双击
Start-Sync.cmd。
config.psd1 已被 .gitignore 忽略,可以安全保存本机路径;公开仓库只包含 config.example.psd1。
配置文件是 PowerShell 数据文件:
@{
Sources = @(
'G:\My Drive\EarthEngineExports'
'H:\My Drive\AnotherExportFolder'
)
Destination = 'E:\GoogleDriveDownloads'
RecognitionDirectories = @(
'D:\OldGoogleDriveDownloads'
'E:\GoogleDriveDownloads'
)
MinFreeGB = 20
ListRefreshMinutes = 60
CacheCheckMinutes = 60
EnableCacheManagement = $false
CacheRoot = '%LOCALAPPDATA%\Google\DriveFS'
RetryCount = 1000000
RetryWaitSeconds = 5
InterPacketGapMs = 0
ProgressRefreshSeconds = 1
RequireGoogleDriveProcess = $true
GoogleDriveProcessName = 'GoogleDriveFS'
GoogleDriveInstallRoot = 'C:\Program Files\Google\Drive File Stream'
LogDirectory = '.\logs'
InstanceMutexName = 'Local\DriveBridge_GoogleDrive_ResumableSync'
}主要字段:
| 字段 | 作用 |
|---|---|
Sources |
一个或多个 Google Drive 挂载源目录 |
Destination |
新文件唯一写入目录 |
RecognitionDirectories |
判断文件已下载的目录,可包含旧磁盘和目标目录 |
MinFreeGB |
目标盘停止下载的剩余空间阈值 |
ListRefreshMinutes |
运行中重新扫描源文件清单的周期 |
CacheCheckMinutes |
Drive 缓存占用检查周期 |
EnableCacheManagement |
是否启用缓存检查和上轮完整结束后的缓存清理 |
RetryCount / RetryWaitSeconds |
robocopy 重试次数和间隔 |
InterPacketGapMs |
robocopy /IPG 限速参数;0 表示关闭 |
ProgressRefreshSeconds |
进度刷新周期 |
相对路径以 config.psd1 所在目录为基准。环境变量使用 %NAME% 语法,例如 %LOCALAPPDATA%。
DriveBridge 按以下条件判断文件完整:
- 相对路径一致;
- 文件大小一致;
- 修改时间差不超过 2 秒(兼容
robocopy /FFT)。
匹配文件可以位于任意 RecognitionDirectories。robocopy 只接收所有识别目录中都缺失的文件名,并始终写入 Destination。
为保证筛选精确,同一个源目录不能在不同子目录中出现同名文件;检测到时程序会停止并给出错误。
EnableCacheManagement = $false 是安全默认值。
启用后,程序会记录 Drive 内容缓存占用。只有上一轮全部源都完整同步并留下完成标记时,下一次启动才会暂停 Google Drive、清理 content_cache,然后重启 Drive。中断运行不会留下完成标记,因此不会删除断点所需缓存。
只运行一轮:
pwsh -NoLogo -NoProfile -File .\Sync-GoogleDrive.ps1 -ConfigPath .\config.psd1 -Once命令行参数可以临时覆盖同名配置项,例如:
pwsh -NoLogo -NoProfile -File .\Sync-GoogleDrive.ps1 `
-ConfigPath .\config.psd1 `
-MinFreeGB 50 `
-ListRefreshMinutes 30pwsh -NoLogo -NoProfile -File .\Run-Tests.ps1测试全部使用系统临时目录和独立实例锁,不读写用户的真实同步目录。
详细覆盖范围见 测试说明。
- 首次使用建议关闭缓存管理,确认下载和断点行为后再开启。
RecognitionDirectories只用于识别,不会被程序删除或同步覆盖。- 程序不会删除
Destination中的额外文件。 - 本工具只适用于你有权访问和下载的数据。