如何自己搭建oss

151 阅读2分钟

🚀 方案一:MinIO(推荐 ✅)

  • 简介:开源的对象存储,100% 兼容 Amazon S3 API。

  • 适用场景:自己搭建私有 OSS,开发、测试、生产环境都能用。

  • 部署方式

    1. 下载 MinIO(Go 语言编写,单个二进制文件)。

      wget https://dl.min.io/server/minio/release/linux-amd64/minio
      chmod +x minio
      
    2. 启动 MinIO(指定存储目录和端口):

      ./minio server /data --console-address ":9001"
      
      • 存储目录:/data
      • API 地址::9000
      • 管理控制台::9001
    3. 浏览器访问 http://服务器IP:9001,默认账号密码是 minioadmin/minioadmin

    4. 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 写一个文件管理服务