Skip to content

MinIO 社区版功能大幅缩水?别慌!回退旧版本并用 mc 无缝迁移到 Cloudflare R2

前言

去年我分享过一篇使用 MinIO 搭配 PicList 自建对象存储与图床的教程,当时用得非常顺手,我网站上的图片一直都是这样上传管理的。

不过,今年 MinIO 几次变动,让我多少对其稳定性产生了顾虑,也开始考虑是否需要寻找一个更稳妥的替代方案。

首先是 5 月的版本,大砍了社区版的 Web UI,仅仅保留了最最基础的 Bucket 功能,其他功能全被“精简”了。

更新后
更新后

回退到老版本,可以看到其他功能又出来了。

更新前
更新前

到了 10 月份,MinIO 在 RELEASE.2025-10-15T17-29-55Z 版本修复了提权漏洞,但并没有同步构建社区版的二进制文件 和 Docker 镜像,停留在了 RELEASE.2025-09-07T16-13-09Z,也就是说现在的 MinIO 只提供源码,如果要用最新版则需要自己构建。

那作为一个普通用户,我们该怎么应对呢?我个人认为目前大致有以下几种可选方案,不过各自都有一些不足,只能根据自身情况先选择一个方案进行过渡:

  • 回退到 5 月前的 RELEASE.2025-04-22T22-12-26Z 版本继续用
  • 使用 RELEASE.2025-09-07T16-13-09Z 搭配 mc 命令行客户端使用

但以上两种方案都只能固定在老版本,后续的功能更新、漏洞修复都享受不到了。

  • 使用第三方构建的最新版本——安全性未知
  • 使用其他新兴的对象存储开源项目,例如 RustFS——稳定性未知
  • 使用现成的对象存储服务,例如 Cloudflare R2——免费额度少、按量付费贵

我个人目前选择回退到 RELEASE.2025-04-22T22-12-26Z 版本接着用,并且用 mc 客户端镜像同步一份到 Cloudflare R2,既可以作为备份,到时候万一自建的 MinIO 出什么问题了,也可以直接把域名绑到 Cloudflare R2 上无缝衔接。

下面具体讲讲该怎么操作。

回退版本

以 Debian 为例,直接下载 RELEASE.2025-04-22T22-12-26Z 版本的 deb 文件安装即可

sh
wget -O minio.deb https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20250422221226.0.0_amd64.deb

dpkg -i minio.deb

Cloudflare R2

Cloudflare R2 是兼容 S3 的对象存储,免费额度包含了每月 10GB 存储、100 万次 A 类操作、1000 万次 B 类操作,不计流量。对于大部分用户来说,免费额度绰绰有余了。

订阅 R2

订阅 R2 需要 Cloudflare 账号绑定支付方式,但是只要你在免费额度内使用,实际是不会产生费用的。

订阅 R2
订阅 R2

订阅完 R2 后,就可以创建一个 Bucket 了。

创建时务必选择 Standard!务必选择 Standard!务必选择 Standard!

不要觉得你的文件不常访问选择了 Infrequent Access,免费额度只适用于 Standard,Infrequent Access 是要收费的!

The free tier only applies to Standard storage, and does not apply to Infrequent Access storage.

创建 Bucket
创建 Bucket

创建 API token

一般情况下,我们不会直接在网页上进行文件的操作,因此还要创建 API token 来让第三方应用调用。

点击 “Manage API tokens” 来创建 API token

API tokens
API tokens

根据自己的需求来创建 “Account API token” 或者 “User API token”,这里我为了方便演示,直接点击创建 “Create Account API token”

Account API Tokens
Account API Tokens

给 Token 起个名字,同时建议选择好合适的权限以及限制调用 IP

权限
权限

最后保存好 AccessKey 和 SecretKey,Key 只有创建时会显示一次,后续无法查看。

mc 客户端

安装

sh
curl -O https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
mv mc /usr/bin/

配置

由于 mc 客户端是兼容 S3 API 的,因此 Cloudflare R2 也可以直接添加进来。

把本地的 MinIO 和 Cloudflare R2 都配置好别名,方便后续操作

sh
mc alias set <ALIAS> <URL> <ACCESS_KEY> <SECRET_KEY>

mc alias set local http://127.0.0.1:9000 <ACCESS_KEY> <SECRET_KEY>
mc alias set r2 https://<Account ID>.r2.cloudflarestorage.com <ACCESS_KEY> <SECRET_KEY>

同步

最后设置好计划任务定期执行以下命令,这样 R2 中的文件会始终和自建的 MinIO 保持一致。

sh
mc mirror --overwrite --remove local/bucket r2/bucket
关注微信公众号
你认为这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.1.3