GoodSync 中文文档 下载 App

云存储对接通用问题与性能调优

API 限流问题

几乎所有云服务商的 API 都有请求频率限制。同步大量文件时很容易触发限流:

云服务商典型限流值限流错误码
Amazon S3每桶 3500 PUT + 5500 GET 请求/秒HTTP 429 / SlowDown / Throttling
Google Drive10,000,000 请求/天HTTP 403 + "Daily Limit Exceeded"
Dropbox每应用 500 请求/秒HTTP 429 / rate_limited
OneDrive每租户每应用 4-8 请求/秒(取决于操作)HTTP 429
Backblaze B2每秒操作数有限制HTTP 429

GoodSync 的限流应对

GoodSync 内置了基本的限流应对:

用户侧的额外优化

  1. 降低并行线程数:Options → Advanced → Parallel Threads,建议云存储不超过 4
  2. 批量同步不要太频繁:避免每小时都 Analyze 大目录(数万文件)
  3. 分批同步:超大目录按功能拆分成多个子目录,分别创建作业
  4. 检查端点日志:某些云服务商在限流时返回的错误信息会告诉你当前请求频率和限制值

文件大小限制

各云存储都有单文件大小上限,同步前需要确认:

云存储最大单文件
Amazon S35 TB
Backblaze B210 GB(免费)/ 无限制(付费)
Google Drive5 TB(个人)/ 与云存储配额一致
OneDrive250 GB
Dropbox50 GB(Basic)/ 150 GB(Plus)/ 250 GB(Business)
Azure Blob5 TB
Box.com250 MB(免费)/ 5 GB(Business)

如果同步超过限制的大文件,GoodSync 会在日志中记录「文件太大,跳过」并继续处理其他文件。

路径长度与特殊字符

路径长度限制

云存储最大路径长度
Windows 本地260(MAX_PATH,默认)或 32767(Long Paths 开启)
macOS1024(大多数字符集下)
Amazon S3无限制(Key 可以是任意字符串)
Google Drive≈ 1024 字符
OneDrive / SharePoint400 字符
Dropbox无硬限制(建议 < 300 字符)

GoodSync 在同步前会检查路径长度,超过限制的文件会被跳过。

特殊字符

某些字符在云存储中不被允许或需要特殊处理:

GoodSync 在同步时会自动处理部分兼容性问题。如果遇到文件名不兼容导致的错误:

时间戳兼容性

云存储的时间戳处理方式与本地文件系统不同,GoodSync 需要做「时间戳翻译」:

情况GoodSync 处理
云存储不支持自定义修改时间在 GoodSync 内部状态文件中记录源时间戳
云存储在上传时会刷新时间戳对比时用内部状态文件的时间戳
时间戳整体偏移(时区/夏令时)Time Shift Detection 自动检测并修正
完全无法保持时间戳在块级哈希之外,额外存储文件的原始时间戳

开启 GoodSync 的 MD5 + Quick 混合模式(Options → Advanced → Analysis Mode)可以最大程度减少时间戳不匹配带来的不必要同步。

重命名的特殊性

云存储的「重命名」与本地文件系统行为差异很大:

云存储重命名实现对 GoodSync 的影响
S3 / B2 / Azure Blob不支持原地重命名,需要 COPY + DELETEGoodSync 自动分两步,过程中两个文件并存
Google Drive支持 API 重命名GoodSync 直接调用
Dropbox支持 API 重命名(移动)GoodSync 直接调用
OneDrive支持 API 重命名GoodSync 直接调用

对于不支持原地重命名的对象存储:

性能调优清单

调优项推荐值说明
并行传输线程4(云存储)/ 8(本地磁盘)超过后可能触发限流或磁盘瓶颈
块级传输开启是对大文件效率提升巨大
Analysis ModeMD5 + Quick 混合平衡速度和准确性
Safe Copy开启防止中途崩溃产生半拉子文件
自动重连开启 + 无限重试网络不稳定时自动恢复
时间戳翻译开启保持跨端点的时间戳一致性
Cloudflare R2 / Backblaze B2S3 端点接入性价比高于 AWS S3

云存储对接的安全清单