GoodSync 中文文档 下载 App

Amazon S3 及 S3 兼容存储对接 GoodSync

S3 对接的认证方式

与需要 OAuth 授权的 Google Drive/Dropbox 不同,S3 类服务使用 Access Key ID + Secret Access Key 作为认证凭据:

字段说明获取位置
Access Key ID公钥,类似用户名AWS 控制台 → IAM → 用户 → 安全凭据 → 创建访问密钥
Secret Access Key私钥,类似密码创建密钥时只显示一次,之后无法再取回——务必保存好
EndpointAPI 端点地址(可选)默认是 AWS S3 的端点;S3 兼容存储需填自家端点
Region存储区域(可选)如 us-east-1、ap-southeast-1

GoodSync 中配置 S3 端点

  1. 创建或编辑作业
  2. 选择左侧或右侧端点类型为「Amazon S3」
  3. 填写凭据:
  1. 点击「Connect」测试连接
  2. 连接成功后可以在目录列表中浏览桶内文件

AWS S3 的 IAM 最小权限原则

不要给 GoodSync 用管理员级别的 IAM 凭据。创建一个专用的、权限最小化的 IAM 用户,只给它操作目标 Bucket 所需的权限:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket"
      ],
      "Resource": "arn:aws:s3:::your-backup-bucket"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject"
      ],
      "Resource": "arn:aws:s3:::your-backup-bucket/*"
    }
  ]
}

这个策略允许 GoodSync 列出桶内容、读取对象、上传新对象、删除对象——正好覆盖同步所需的全部操作。

S3 兼容存储

GoodSync 支持 S3 协议的通用 API 调用,因此也能对接各种 S3 兼容存储:

兼容存储Endpoint说明
Cloudflare R2https://<account-id>.r2.cloudflarestorage.com无出站费用,国内访问可能需要代理
MinIOhttp://<host>:9000自建 S3 兼容存储
Wasabihttps://s3.wasabisys.com商业 S3 兼容存储
DigitalOcean Spaceshttps://nyc3.digitaloceanspaces.comDO 对象存储
阿里云 OSS(S3 模式)https://oss-cn-hangzhou.aliyuncs.com阿里云对象存储
腾讯云 COS(S3 兼容)https://cos.ap-guangzhou.myqcloud.com腾讯云对象存储

S3 兼容存储的 Bucket 创建、Access Key 获取流程各有不同,但 GoodSync 的配置方式完全一致——填写 Endpoint + Access Key + Secret Key + Bucket Name。

S3 作为 GoodSync 的端点的注意事项

对象存储 vs 文件系统

S3 是对象存储而不是文件系统,GoodSync 在对接时做了一层适配:

文件系统操作S3 对应操作GoodSync 处理
创建目录S3 没有目录概念GoodSync 通过在对象键名中用 / 分隔来模拟目录
重命名文件S3 不支持原地重命名GoodSync 执行「复制到新键名 + 删除旧键名」两步操作
修改文件S3 不支持原地修改实际上传一个新对象覆盖旧对象
权限属性S3 对象级 ACLGoodSync 可配置同步对象的 ACL

重要提示:S3 上的「重命名」实际上是「复制 + 删除」。如果同步过程中断,可能出现新旧两个对象同时存在的情况——GoodSync 有专门的 S3 处理逻辑来避免这种问题,但在同步大批量重命名时可能比文件系统慢。

S3 存储类别与版本控制

如果你的 S3 Bucket 开启了版本控制(Versioning):

关于 S3 存储类别(Standard → IA → Glacier):

并行线程数的建议

S3 API 对单个 IP 的并发请求有默认限制(1000 请求/秒,实际安全值建议 100-200)。GoodSync 的并行线程数不要超过 8,过高可能触发 S3 的限流响应(HTTP 429)。

典型场景:用 Cloudflare R2 做异地备份

Cloudflare R2 没有出站流量费用,适合做备份目标:

  1. 在 Cloudflare 控制台创建 R2 Bucket
  2. 创建 R2 Access Key(R2 → Settings → API Tokens → Create API Token)
  3. 在 GoodSync 中创建备份作业:
  1. 配置 GoodSync 额外 AES-256 加密(Cloudflare R2 不加密用户数据)
  2. 设置计划任务自动备份