弄清桶里有什么
把大规模 S3 兼容存储写成可分析的 Parquet list,不必先手动调一套扫描参数。
s3-turbo-list · Rust CLI
面向大规模 S3 兼容存储,自动发现可并行的 list / diff 工作。
v0.21.0 实测
2 vCPU 云主机 · 默认 list QPS · 北京 OSS。受限环境实测,不是性能上限。
c=8 是 Parquet 参考运行;c=24 是特定调度异常,不代表通用性能边界。
它解决什么
迁移、排查或盘点之前,先弄清两件事:桶里有什么,以及两端到底差了什么。
把大规模 S3 兼容存储写成可分析的 Parquet list,不必先手动调一套扫描参数。
对比源端和目标端的对象元数据,得到一份有序的差异结果。
不负责同步对象 它不复制对象,也不替代存储浏览器;它负责给后续判断留下可靠的依据。
为什么做
大规模扫描通常不是终点。你需要一份 list 结果继续分析,或需要差异结果判断一次迁移是否完成。
s3-turbo-list 默认留下这两种结果。计划、恢复和证据能力只在任务需要时出现,命令本身保持克制。
list 如何自动展开
第一次 list 先识别桶里的前缀边界,有结构就并行展开;剩下的长尾片段再按需拆分。
先探测真实的前缀边界,再开始递归扫描。
利用这些边界展开并行任务,不必预先准备 hints 文件。
只有仍然耗时的片段,才会在有可用性能时继续拆分。
最终留下可分析的 Parquet list,而不只是终端输出。
最后留下什么
两条路径都会留下可继续处理的结果,但它们不是同一种操作。
LIST
长任务可以从 checkpoint 继续;需要复查时,再查看可选的 trace 和运行记录。
DIFF
两端会并行列举,再按 key 合并;下游可以直接筛出相同、缺失和变化的对象。
兼容性
AWS S3、MinIO 和百度 BOS 走过项目的兼容性验证。R2、OSS、B2 提供 preset;无论哪种端点,都建议先运行 `compat-probe`。
常见问题与用法
小规模、临时查看当然可以。s3-turbo-list 面向大规模盘点和可重复对比,结果输出和恢复能力更重要。
不需要。list 首次运行会探测真实的 `CommonPrefixes` 边界。hints 文件只是反复盘点时的额外控制。
启动发现会在 list 启动阶段用并行 single-key 探测为扁平命名空间预分区,让首次运行更早展开并发,而不必只靠运行时拆分逐步提升。