如果需要自托管 S3 对象存储,开发测试和小规模生产场景可以从这些方案里选。我主要要求:有 Docker 镜像、启动快、依赖简单、可单节点。
| 名称 | S3 兼容 | 单节点难度 | 维护 | 优缺点 | 备注 |
|---|---|---|---|---|---|
| MinIO | 是 | 简单~中等 | 上游仓库已归档;社区版源码分发 | 生态成熟、S3 兼容度高;社区版不再提供预编译二进制,生产支持边界需确认 | 历史基准 |
| Silo | 是(MinIO 兼容) | 简单 | 活跃;社区维护 fork | 最接近 MinIO 的替换路径,保留 API、MINIO_* 环境变量和存储格式;AGPL-3.0 | 迁移成本最低 |
| S3Proxy | 是(见文档限制) | 非常简单 | 长期维护 | 极轻量、配置简单;能力边界看后端 | 极简首选 |
| RustFS | 是(文档宣称完整) | 简单 | 活跃;已进入 1.0 beta 阶段 | 有 GUI、可当 MinIO 二进制替换叙事;正式 GA 前仍要谨慎 | 潜力大,生产需再评估 |
| VaultS3 | 是(80+ 操作) | 简单 | 活跃;单人项目 | 单二进制、低内存、内置 Web 面板、加密和版本控制;AGPL-3.0,集群与多活仍是 beta | 轻量单节点候选 |
| SeaweedFS | 是 | 简单~中等 | 长期活跃 | 成熟、有基础 UI,体验接近 MinIO | 当前主力候选 |
| CloudServer(Zenko) | 是 | 中等 | 活跃 | 功能完整,套件感重 | 可接受但 overhead 大 |
| Garage | 是 | 复杂 | 活跃 | 偏分布式;单节点配置繁 | 不适合快速 demo |
| NooBaa | 是 | 复杂 | 活跃;Kubernetes/Operator | 支持将本地盘、S3、GCS、Azure Blob 等后端统一为 S3,并提供分层与镜像;依赖 Kubernetes | 云原生/混合云 |
| Ceph RGW | 是(含 Swift) | 极复杂 | 活跃;Ceph 社区 | 成熟的分布式对象存储网关;需要先建立 Ceph 集群 | 已有 Ceph 首选 |
| OpenStack Swift | 是(兼容层) | 极复杂 | 长期维护;OpenStack | 老牌分布式对象存储;原生 API 不是 S3,兼容层存在功能差异 | OpenStack 生态 |
| Apache Ozone | 是 | 极复杂 | Apache | 企业级、非轻量 | 本地单节点不推荐 |
| Versitygw | 是(网关) | 简单 | 活跃 | 将 POSIX、S3、Azure Blob 等后端暴露为 S3;不是独立对象存储,能力取决于后端 | 文件系统/S3 网关 |
| JuiceFS S3 Gateway | 是(网关) | 中等 | 活跃 | 通过 S3 暴露 JuiceFS 文件系统;依赖 JuiceFS 元数据服务和底层对象存储 | 已有 JuiceFS |
| Rook-Ceph | 是(通过 Ceph) | 极复杂 | 活跃;CNCF 生态 | 在 Kubernetes 中编排 Ceph Object Store;本身不是 S3 服务 | Kubernetes 编排 |
| LocalStack S3 | 是(模拟) | 极简单 | 活跃 | 本地测 AWS API 很方便;不是持久对象存储产品 | 仅测试替身 |
推荐
- MinIO → 作为兼容性基准保留;社区版仓库已归档,不建议新项目默认部署。
- Silo → 已有 MinIO 数据、配置或客户端时的首选迁移目标,兼容路径最短。
- VaultS3 → 轻量单节点优先;单二进制、低内存、自带管理面板,但关键数据仍要保留独立备份。
- SeaweedFS → 需要更成熟的分布式能力,或同时关注对象存储与文件系统时优先考虑。
- S3Proxy → 只需要极简 S3 接口、并已有可靠后端时选择;它本身不负责完整对象存储能力。
- NooBaa → Kubernetes、混合云或多后端统一入口;不适合快速单机部署。
- Ceph RGW → 已经使用 Ceph 时选择;不要为了一个 S3 接口单独引入整套 Ceph。
- OpenStack Swift → 已经使用 OpenStack 时选择;纯 S3 场景不优先。
- Versitygw → 已有 POSIX、Azure 或其他 S3 后端,只需要增加 S3 接入层时选择。
- JuiceFS S3 Gateway → 已经使用 JuiceFS,并希望通过 S3 访问文件系统时选择。
- Rook-Ceph → 需要在 Kubernetes 中编排 Ceph 时选择;它不是独立的对象存储服务。
- 只测 AWS SDK → LocalStack S3。
- RustFS → 仍处于 beta,先验证兼容性和安全性再用于生产;CloudServer、Garage、Apache Ozone 则偏重,不作为轻量单节点首选。