什么是 MinIO?在 VPS 上自建 S3 对象存储(一键部署)
如果你曾用 Amazon S3 存储图片、上传文件或备份,那么 MinIO 能带给你完全相同的体验——但它运行在你自己的 VPS 上,没有按 GB 计费,也不受厂商锁定。本文介绍 MinIO 是什么、何时使用,以及如何用 MyPanel 一键自建兼容 S3 的对象存储。
什么是 MinIO?
MinIO 是一款完全兼容 Amazon S3 API 的开源对象存储软件。它不像传统那样按文件夹存储,而是把每个文件作为“对象”存放在**存储桶(bucket)**中,并通过 HTTP/HTTPS 提供访问——与 S3 的工作方式完全一致。
MinIO 的亮点:
- 100% 兼容 S3——任何支持 S3 的库、SDK 或插件几乎无需改代码即可使用 MinIO。
- 轻量且快速——单个高性能 Go 二进制文件,即使在小型 VPS 上也运行良好。
- 数据自主——数据存放在你自己的服务器上,完全由你掌控。
- 免费——开源,无授权费。
简而言之:MinIO 让你拥有自己的“迷你 Amazon S3”。
为什么要自建 MinIO 而不是租用 S3?
| MinIO(自建) | Amazon S3 / 云 | |
|---|---|---|
| 存储成本 | 已含在 VPS 中 | 按 GB + 请求计费 |
| 出站带宽(egress) | 通常随 VPS 免费/便宜 | 计费,容易超支 |
| 同机应用延迟 | 极低(本地) | 经由互联网 |
| 数据自主 | 完全掌控 | 在第三方基础设施上 |
| 厂商锁定 | 无 | 有 |
对于中小型站点,S3 的存储费加上出站流量费很容易超过一台 VPS 的租金。自建 MinIO 让你彻底省去按 GB 计费的存储成本,同时保留 S3 标准,便于日后扩展。
MinIO 用来做什么?
- WordPress 媒体卸载——通过 S3 插件(如 WP Offload Media)把媒体库放到 MinIO,为站点减负、提速。
- 应用文件上传——任何使用 S3 SDK 的应用(Node、Python、Go、PHP、Laravel……)只需把 endpoint 指向 MinIO。
- 备份目标——把网站/数据库备份推送到 MinIO,即使服务器磁盘损坏也能保全。
- 私有文件分享——为私有文件签发临时的预签名 URL(presigned URL)。
在 VPS 上安装 MinIO:手动 vs 一键
手动搭建生产级 MinIO 并不简单:要安装 Docker、拉取 MinIO 镜像和 mc 客户端、配置容器、搭建 nginx 反向代理、申请 Let’s Encrypt SSL 证书,再创建存储桶和按桶隔离的访问密钥以保证安全。任何一步出错,要么外部无法访问,要么数据被暴露。
MyPanel 把这一切都装进一个按钮。
用 MyPanel 自建 MinIO——步骤
MyPanel 是面向 Linux VPS 的单文件控制面板,内置对象存储(MinIO):
- 安装引擎——进入存储菜单,点击安装 MinIO。面板自动拉取 MinIO 镜像 +
mc并启动容器。 - 创建存储桶 + 密钥——为桶命名;每个桶获得仅限该桶的 access key + secret(一个桶的密钥无法访问其他桶)。若要通过 URL 提供图片,可开启公开读取。
- 绑定域名 + SSL——点击**“绑定域名”,MyPanel 会创建指向 MinIO 的反向代理并自动签发 Let’s Encrypt**。另有单独选项用于开放管理控制台(完整支持 WebSocket)。
- 连接应用——使用 Endpoint
https://<你的域名>、Regionus-east-1,并启用 path-style(forcePathStyle: true)。存储页面已列出这些值供复制。
默认即安全
MyPanel 将 MinIO 配置为仅监听本机(127.0.0.1)——只有当你主动“绑定域名”并启用 SSL 时才对外开放。每个桶拥有独立密钥,可随时轮换密钥,并按需切换公开 / 私有。这正是手动最容易出错的地方。
让 MinIO 与备份搭配
MinIO 不仅用于媒体——它还是 MyPanel 自身的兼容 S3 的备份目标。你可以把网站/数据库备份指向 MinIO(同一台或另一台服务器)以获得安全副本。参见备份与恢复。
几分钟即可开始
如果你想要一个自主、省钱、兼容 S3 的对象存储,又不想折腾 Docker 和 nginx,那么在 MyPanel 上运行 MinIO 是最短的路径:
- 免费版已可安装引擎并创建 1 个存储桶试用。
- Pro 版解锁不限数量的存储桶。
👉 在 Ubuntu/Debian VPS 上用一条命令 安装 MyPanel,然后一键开启 MinIO。