首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

单节点本地 S3 的 MinIO 替代方案

摘要

S3 MinIO Apache Iceberg In late 2025 the company behind MinIO decided to abandon it to pursue other commercial interests. As well as upsetting a bunch of folk, it also put the cat amongst the pigeons ...

the MinIO for and demos that not this Must have
2026-09-15 1 阅读 约9分钟阅读 rmoff
分享:
字号:
S3 MinIO Apache Iceberg 2025 年末,MinIO 背后的公司决定放弃它以追求其他商业利益。除了让很多人感到不安之外,它还让许多依赖 MinIO 在本地模拟 S3 存储的软件演示成为了众矢之的,更不用说构建使用它来验证 S3 兼容性的管道了。在这篇博文中,我将介绍 MinIO 的一些替代方案。虽然 MinIO 不仅仅是一个在构建演示时模拟 S3 的荣耀工具,但我在这里的重点将放在最简单的替代品上。实际上,这意味着: 必须有 Docker 映像。如此多的演示都是以 Docker Compose 的形式提供的,除非确实有必要,否则没有人喜欢构建自己的 Docker 镜像。必须提供 S3 兼容性。这些演示中 MinIO 的全部目的是代替写入实际的 S3。必须免费使用,并且强烈倾向于开源(根据 OSI 定义)许可证,例如阿帕奇2.0。应易于用于单节点部署 应具有明确且活跃的社区和/或商业支持者。任何人都可以对一些废弃软件进行振动编码,或者出于热情分叉一个项目——但 MinIO 到目前为止经受住了时间的考验,我们不想在六个月内重复这个练习。优秀的开发者体验(DX)、流畅的配置、良好的文档等加分。我纯粹看的是单节点本地 S3 体验。下面讨论的几个工具具有广泛的功能,S3 支持只是其中之一。其他人只提供 S3,仅此而已。就我的目的而言,只要任何附加功能和支持不会增加部署的复杂性或重量,两者都可以。例如,我不关注的是多节点部署、分布式存储、生产支持成本、GUI 功能等等。也就是说,这篇博文并不是针对那些在生产中使用 MinIO 作为自我管理 S3 的人。如果您在这方面需要添加有用的内容,请随时在下面发表评论:) 该项目中的所有代码都可以在此存储库中找到。 MinIO 基线🔗 我的起点是一个非常简单的 Docker Compose 堆栈:DuckDB 用于读取和写入存储在 S3 上的 Iceberg 数据,由 MinIO 提供。您可以在此处找到代码。 Docker Compose 非常简单:显然是 DuckDB,以及 Iceberg REST Catalog MinIO(S3 本地存储) mc ,这是一个 MinIO CLI,用于自动为数据创建存储桶。当我将数据插入 DuckDB 时: INSERT INTO cat 。测试 。产品值 (1, '小部件', 9 . 99), (2, '小工具', 19 . 99), (3, 'Doohickey', 14 . 99);它最终在S3上以Iceberg格式结束,在MinIO中: $ mc ls minio/warehouse/test/products/data/ [ 2026-01-12 14:35:55 UTC] 693B STANDARD 019bb2a2-8ad5-7159-968c-3693c3578902.parquet [ 2026-01-12 14:35:55 UTC] 2.7KiB 标准 188ee032-8576-4f46-9834-1cac6d3080a3-m0.avro [ 2026-01-12 14:35:55 UTC] 1.6KiB 标准snap-2633370813252912097-95ad4df0-3243-4cfb-a736-8f785aac100c.avro 在我构建的每个示例中,您可以运行 test.sh 来验证它。 ❯ ./test.sh ░▒▓██████████████████████████████████████████████████▓▒░ ▒ ▒ ▓ ___ ▓▓▓▓▓ ▓ █ ___ ( o )> ┌──────────┐ ▓▓▓▓▓▓▓ ▒▒▒▒▒▒▒ █ █ \ <_. ) │ DUCKDB │ ▓░本地 S3 ░▓ ▒▒▒▒ █ █ --- └────────────┘ ▓▓ MinIO ▒▒▒ █ ▓ ┏––––––––––––┓ ░░░ ▓ ▒ ≋≋≋≋≋≋≋ ┃ ICEBERG ┃ ≋≋≋≋≋≋≋≋ 烟雾测试 ▒ ░ ≋≋≋≋≋≋≋ ┗────────────────────────┛≋≋≋≋≋≋≋≋░░▒▓███████████████████████████████████████████████████▓▒░ 1. 检查 MinIO 存储桶(之前)... [ 2026-01-14 12:48:41 UTC] 0B 仓库/ 2. 创建 Iceberg 表并插入数据... [ ...] 3. 验证 DuckDB 中的数据... [ ...] ┌───────┬───────────┬─────────────┐ │ id │ 名称 │ 价格 │ │ int32 │ varchar │ 小数 ( 10,2 ) │ ├────────┼────────────┼────────────┤ │ 1 │ Widget │ 9.99 │ │ 2 │ 小工具 │ 19.99 │ │ 3 │ Doohickey │ 14.99 │ └────────┴────────────┴──────────────┘ 4. 检查 MinIO 存储桶内容(之后)... [ 2026-01-14 12:49:07 UTC] 493B STANDARD data/019bbc8d-7d44-7b6b-af71-0ab99d3a0124.parquet [ 2026-01-14 12:49:07 UTC] 2.7KiB 标准数据/c37ab68c-8aaf-44a4-88e6-bc02a01daf5c-m0.avro [ 2026-01-14 12:49:07 UTC] 1.6KiB 标准数据/snap-1988745121468861337-95e77212-9571-423f-bb71-ce8f1b4282f0.avro [ 2026-01-14 12:49:07 UTC] 1.0KiB 标准元数据/00000-8bf22118-d262-47a9-986c-721d2b99a846.metadata.json [2026-01-14 12:49:07 UTC] 1.7KiB 标准metadata/00001-5cad6fc5-fe54-41bc-8131-4d6f900d20e7.metadata.json MinIO 替代品 🔗 现在让我们探索 MinIO 的不同替代品,以及它们是多么容易切换 MinIO。我已经完成了上述项目,并尝试通过尽可能少的更改来实现它,以使用 MinIO 的替代品。我保留了 MinIO S3 客户端 mc,因为如果您想完全删除 MinIO(s3cmd、aws CLI 等),替换它没什么大不了的。 S3Proxy 🔗 💾 Docker Compose 示例 已测试版本:3.0.0 ✅ Docker 映像(5M+ 拉取) ✅ 许可证:Apache 2.0 ✅ S3 兼容性轻松
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱