Rust CLI / 对象存储

列举超大 S3 兼容存储桶,不再卡在一条慢分页链上。

s3-turbo-list 是面向运维团队和数据工程师的高性能 CLI:并发生成存储桶清单,支持 provider 诊断、可追踪运行、差异对比、断点续跑和 Parquet 分析输出。

Rust · MIT License · S3-compatible · Parquet · Trace JSONL

$ s3-turbo-list --dry-run --agent \
  --output-dir out --delimiter '' \
  list --region us-east-2 --bucket my-bucket

plan.segments        64
plan.output          out/*.parquet
trace.enabled        true
checkpoint.resume    ready

$ s3-turbo-list manifest-summary run.json --check
artifacts            ok
parquet.rows         verified
exit_code            0

功能

分段列举

把 key 空间拆成独立分段并发扫描,而不是等待一条很长的分页链。

Trace JSONL

把每一次 S3 API 调用记录成结构化 JSONL,便于在运行后观察 provider 行为。

断点续跑

从已保存的分段进度恢复中断扫描,并通过身份校验避免错配运行。

Parquet 导出

把清单和差异结果直接写入压缩 Parquet,方便 DuckDB、pandas 和审计流程使用。

为什么需要它

顺序列举在小桶上没问题,但对象数量一大就会变成一次运维任务。

常规列举工具通常绑定在单条 ListObjectsV2 分页链上。小桶还好,当对象数量达到百万、千万甚至更高时,这会非常痛苦。

s3-turbo-list 会切分 key 空间,并行执行列举,并通过 manifest、trace、checkpoint 和 Parquet 产物让运行过程可审计。

工作流

01

探测

先运行 compat-probe 或 doctor,在大规模列举前验证 endpoint 行为。

02

规划

用 dry-run 和 agent-friendly JSON 检查输出路径、提示和警告。

03

扫描

用并发分段、有界内存、运行 manifest 和 trace 输出完成列举。

04

分析

在 DuckDB 或 pandas 中加载 Parquet,或查看 trace JSONL 理解 provider 行为。

兼容性

面向真实 S3 兼容 endpoint,而不只是假设一切顺利。

AWS S3MinIOCloudflare R2BOSOSSB2

Endpoint preset、compat-probe、trace 输出和校验报告可以帮助你在扩展扫描规模前理解每个 provider 的具体行为。

先 dry-run,再保留 trace。

打开仓库