1. 继续使用旧版本MinIO:
minio/minio:RELEASE.2022-05-26T05-48-41Z2. 寻找其它替代软件,比如:RustFS
这篇文章将要介绍的是使用Docker部署RustFS对象存储服务从而替代MinIO,有需要的开发人员、运维人员或企业可以参考。
关于RustFS
> RustFS 是一个使用 Rust 构建的高性能分布式对象存储软件。与 MinIO 一样,它具有简单性、S3 兼容性、开源特性以及对数据湖、AI 和大数据的支持等一系列优势。此外,与其他存储系统相比,它采用 Apache 许可证构建,拥有更好、更用户友好的开源许可证。由于以 Rust 为基础,RustFS 为高性能对象存储提供了更快的速度和更安全的分布式功能。 —— 引用自官方介绍

> RustFS开源地址:https://github.com/rustfs/rustfs
RustFS特性
- **高性能**:使用 Rust 构建,确保速度和效率。
- **分布式架构**:可扩展且容错的设计,适用于大规模部署。
- **S3 兼容性**:与现有 S3 兼容应用程序无缝集成。
- **数据湖支持**:针对大数据和 AI 工作负载进行了优化。
- **开源**:采用 Apache 2.0 许可证,鼓励社区贡献和透明度。
- **用户友好**:设计简单,易于部署和管理。
Docker部署RustFS
接下来演示如何使用Docker Compose单机部署RustFS(注意:如果是比较重要的生产环境建议集群部署),新建一个
docker-compose.yaml文件,内容如下:version: '3'
services:
rustfs:
container_name: rustfs
image: rustfs/rustfs:latest
ports:
- "9000:9000"
volumes:
- ./data:/data
environment:
- RUSTFS_ACCESS_KEY=rustfsadmin
- RUSTFS_SECRET_KEY=rustfsadmin
- RUSTFS_CONSOLE_ENABLE=true
- RUSTFS_SERVER_DOMAINS=example.com
restart: unless-stopped关键参数含义如下:
*
RUSTFS_ACCESS_KEY:可以简单理解为管理员用户名,务必自行修改*
RUSTFS_SECRET_KEY:可以简单理解为管理员密码,务必自行修改*
RUSTFS_CONSOLE_ENABLE:启用WEB控制台*
RUSTFS_SERVER_DOMAINS:RustFS服务端域名最后输入
docker-compose up -d启动,然后访问http://IP:9000端口访问RustFS WEB服务端,选择密钥登录,并输入您设置的账号、密码完成登录。
Nginx反向代理
生产环境一般不推荐IP + 端口登录方式,通常通过Nginx反向代理后使用域名访问,下方的Nginx配置可以参考:
server {
listen 443 ssl http2;
server_name xxx.com;
# SSL 证书配置(替换为你的证书路径)
ssl_certificate /xxx.crt;
ssl_certificate_key /xxx.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
# Allow special characters in headers
ignore_invalid_headers off;
# Allow any size file to be uploaded.
# Set to a value such as 1000m; to restrict file size to a specific value
client_max_body_size 0;
# Disable buffering
proxy_buffering off;
proxy_request_buffering off;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 300;
# Default is HTTP/1, keepalive is only enabled in HTTP/1.1
proxy_http_version 1.1;
proxy_set_header Connection "";
chunked_transfer_encoding off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://IP:9000;
}
}
# HTTP 跳转 HTTPS
server {
listen 80;
server_name xxx.com;
return 301 https://$host$request_uri;
}> 上述配置来自官方提供:https://github.com/rustfs/rustfs/issues/374 ,如果不按照官方配置,可能出现反代后无法登录的情况!
基本使用
**后台界面**
RustFS提供的WEB界面简单易用,并且默认支持中文和英语两种语言。

**创建存储桶**
在【存储桶界面右上方 - 创建存储桶 - 输入存储桶名称】,根据自身需要选择是否开启版本控制和对象锁即可。

**对象管理**
在文件浏览器中可以对文件对象进行基本管理操作(预览和删除),也可以新建新建目录和上传文件。

**进阶使用**
其他高级功能大家可以自行摸索,xiaoz个人觉得RustFS提供的WEB界面比MinIO的WEB界面更加易用。
> Tips:RustFS完全兼容S3协议,因此您可以使用任意S3客户端来操作和管理RustFS
结语
MinIO新版License变更后,RustFS成为理想替代方案——基于Rust高性能开发、兼容S3协议、采用友好的Apache开源协议,为私有存储提供了更优选择。
> RustFS官网:https://rustfs.com/