S3 网关把已有的文件系统、对象存储或云 API 暴露成 S3;兼容层则用于编排、管理或测试。它们不应与真正保存数据的对象存储引擎混在一张表里。
| 方案 | 类型 | 适合场景 | 主要边界 |
|---|---|---|---|
| S3Proxy | 通用 S3 网关 | 给已有后端补一个轻量 S3 接口 | 能力取决于后端和实现覆盖 |
| Versitygw | 多后端 S3 网关 | POSIX、S3、Azure Blob 等后端统一入口 | 本身不是独立对象存储 |
| JuiceFS S3 Gateway | 文件系统 S3 网关 | 已有 JuiceFS,希望通过 S3 读写 | 依赖 JuiceFS 元数据和底层存储 |
| Rook-Ceph | Kubernetes 编排 | 在 Kubernetes 中编排 Ceph Object Store | 本身不是 S3 存储服务,依赖 Ceph |
| buktio | Garage 管理面 | 已有 Garage,需要 Web 管理和控制面 | 不保存对象,仍需部署 Garage |
| LocalStack S3 | AWS API 测试替身 | 本地测试 SDK、事件和 IaC | 不是生产对象存储 |
| MinIO Gateway | 兼容路径 | 给外部后端提供 S3 入口 | 具体能力与发行版、版本和后端有关 |
怎么选
- 只需要给已有可靠后端增加 S3 API:S3Proxy 或 Versitygw。
- 已经使用 JuiceFS:JuiceFS S3 Gateway。
- 已经使用 Kubernetes 和 Ceph:Rook-Ceph。
- 已经使用 Garage 但缺少管理面:buktio。
- 只需要本地模拟 AWS S3:LocalStack S3。
网关选型要重点验证 multipart、range read、ACL、版本、生命周期、加密、预签名、限流、错误码和一致性语义。不要用 LocalStack 的测试通过,推断生产对象存储一定兼容。
真正的自托管存储引擎见自托管 S3 对象存储对比。