🚀 方案一:MinIO(推荐 ✅)
-
简介:开源的对象存储,100% 兼容 Amazon S3 API。
-
适用场景:自己搭建私有 OSS,开发、测试、生产环境都能用。
-
部署方式:
-
下载 MinIO(Go 语言编写,单个二进制文件)。
wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod +x minio -
启动 MinIO(指定存储目录和端口):
./minio server /data --console-address ":9001"- 存储目录:
/data - API 地址:
:9000 - 管理控制台:
:9001
- 存储目录:
-
浏览器访问
http://服务器IP:9001,默认账号密码是minioadmin/minioadmin。 -
Spring Boot 或其他服务通过 S3 SDK 直接访问。
-
✅ 优点:
- 完全兼容 AWS S3 SDK(Java、Python、Node.js 全支持)。
- 部署超简单,一个二进制文件搞定。
- 社区活跃,文档齐全。
❌ 缺点: - 分布式存储要用 MinIO 集群,配置比单机复杂。
🚀 方案二:Ceph(企业级分布式存储)
-
简介:成熟的分布式存储系统,可以同时支持对象存储(S3 API)、块存储、文件存储。
-
适用场景:需要 PB 级存储、高可用、大规模企业部署。
-
部署方式:
- 安装 Ceph 集群(需要多台机器)。
- 配置 RADOSGW(提供兼容 S3 的对象存储接口)。
-
难度:很高,运维成本大,不适合个人/小团队。
✅ 优点:
- 大规模存储方案,企业级可靠。
❌ 缺点: - 学习曲线高,部署维护复杂。
🚀 方案三:FastDFS
-
简介:国产开源的分布式文件存储系统。
-
特点:
- 存储文件和元数据(不完全兼容 S3)。
- 适合存图片、视频、日志文件。
-
缺点:生态相对封闭,很多 SDK 要自己适配。
🚀 方案四:自己写简易版 OSS(学习用)
如果只是学习/小规模测试,可以直接用:
- Spring Boot + MySQL/SQLite:数据库存文件路径,文件存磁盘目录。
- 提供上传/下载 API,配合前端就能当作简易 OSS。
❌ 但没有分布式、权限管理、签名 URL 等高级功能。
📌 建议选择
- 个人 / 小团队:👉 MinIO(最简单、功能全、兼容 S3)
- 企业级、大规模存储:👉 Ceph
- 老牌国产:👉 FastDFS
- 练手学习:👉 自己用 Spring Boot 写一个文件管理服务