橙宝书
指南

R2 迁移手册:Super Slurper、Sippy 还是 rclone

按停机方式、对象限制与验证要求选择 R2 迁移工具,并设计灰度切换和可回退流程。

编辑与核验:橙宝书编辑团队 ·

HOW TO数据迁移32 分钟产出:迁移与回退清单

先给结论

一次性批量复制优先评估 Super Slurper;必须不停机、希望在 R2 miss 时边服务边回填则评估 Sippy;超大对象、特殊过滤或需要自主管理重试时使用 rclone 或专用工具。无论选哪条路,都不能只用 ETag 相等判定迁移成功。

根据批量复制、不停机迁移和超大对象要求选择 R2 迁移工具的流程图
先选切换模型,再做数量、字节、元数据、抽样读取和业务级验证;源 bucket 留到回退窗口结束。查看原图
详细说明
源对象存储先进入迁移决策。一次性批量复制可使用 Super Slurper,不停机按需迁移可使用 Sippy,超大对象或自定义同步可使用 rclone 或专用工具。所有路径汇合到清单和抽样验证,之后才灰度切换。
  1. 01
    Inventory

    记录对象数、总字节、大小分布、元数据与大对象。

  2. 02
    Transfer

    按停机模型与对象限制选择工具。

  3. 03
    Verify

    比较清单并进行抽样读取和业务校验。

  4. 04
    Cut over

    先灰度读流量,保留源端回退。

三条路径怎么选

路径适合关键限制上线前必须验证
Super Slurper从 S3、GCS 或兼容 S3 的存储一次性批量复制主要面向单对象小于 1 TB;源端不被修改失败清单、大对象补迁、对象数与字节数
Sippy不能停机,先从源端响应,在 R2 miss 时同时复制第一次复制后的源端更新不会自动同步;并发 miss 可能重复回源热点、源端费用、变更窗口与剩余冷对象
rclone / 专用工具超大对象、过滤、重命名、限速、专用校验团队自行承担并发、重试、断点和审计重跑幂等性、失败恢复和 API 限制

六步迁移

固化源端基线

记录 bucket、对象数、总字节、大小分布、Content-Type、自定义元数据、缓存头、生命周期和加密要求。另列超过 1 TB 的对象。若源端仍允许写入,记录增量同步的开始时间与负责人。

选择切换模型

可接受写入冻结并一次复制,选 Super Slurper 候选;不能停机且访问可触发回填,选 Sippy 候选;有超大对象或特殊转换,拆出 rclone/专用任务。Sippy 可以与 Super Slurper 组合:前者承接在线 miss,后者补齐剩余对象。

先迁一个受控前缀

选择不含敏感数据、尺寸分布真实、可重复验证的前缀。记录开始与结束时间、源端请求与流量、R2 写入量、失败对象和重试次数。不要第一步就把生产域名切到 R2。

做五层验证

  1. 对象数;2. 总字节;3. key、Content-Type、缓存头与自定义元数据;4. 小、中、大对象抽样读取并比较内容摘要;5. 用真实应用执行上传、读取、范围请求和删除策略。分段上传可能让迁移后的 ETag 不同,因此 ETag 只能是线索。

灰度切换读取

先让内部或少量流量读取 R2,观测缺失对象、5xx、延迟、源端回读和业务错误。切域名前明确回退开关,保证旧配置与旧 bucket 仍可用。

关闭迁移并保留回退窗

在增量差异清零、业务检查通过和观察期结束后,停止源端写入或完成最后同步。源 bucket 的删除是独立、需人工确认的后续操作,不属于“迁移成功”这一步。

Sippy 不是持续双向同步

某个对象首次复制到 R2 后,源端对它的后续修改不会自动反映到 R2。迁移期间要么冻结该对象的源端写入,要么设计明确的增量同步与冲突规则。

完成标准与回退触发器

  • 清单差异有解释,失败对象已补迁或明确排除。
  • 抽样内容摘要与业务读取通过,不以 ETag 相等作为唯一标准。
  • 新写入只发生在一个权威位置,或存在经过测试的双写/增量规则。
  • 缺失率、错误率或源端成本超过阈值时,可以把读流量切回源端。
  • 源端保留期、删除审批人和最终清理日期已记录。

迁移后按 R2 生产交付配方设置域名、CORS 与授权;选型阶段见 R2 对比页

官方来源

这篇内容帮你完成目标了吗?

内测反馈只在当前浏览器生成,不会自动上传。

本页目录