背景
近期在做一个新项目,做的文件上传模块时,我这边是提供了3中文件存储方式,分别是本地存储,基于SMB协议的存储和基于S3协议的对象存储。
前两个不用说,主要是开发场景和满足一些兼容性场景而做的,而标准的文件存储方案,应该是基于S3协议,而存储对象方案,可以是aws的s3,阿里云的oss等之类的云方案,也可以是基于私有云或者混合云方案比如MinIO,FastDFS,RustFS等。
而众所周知,MinIO前阵子突然政策调整,原有的web控制台屏蔽了大部分的功能,接口方面也只有bucket相关的管理接口保留,几乎是不可用的状态,说白就是不让免费用了。当然退回到以前的版本目前来说还是可以用的,但对大部分开发者来说,无疑要积极寻找替代方案了。像前面提到的FastDFS就是一个很好的方案,但安转部署相对复杂,不能像MinIO那样开箱即用,对团队技术要求比较高,也就是不是所有MinIO的用户都有能力迁移到FastDFS之类的方案。
刚犯困就有人递枕头,RustFS这不就来了吗,还是纯国人开发,截止到今天(2025.9.3),已经发布了1.0的alpha版本,几乎可以部署到生产环境了,距离真正可以大规模部署,并替代MinIO之类S3协议的对象存储方案,只有一步之遥。

部署安装
结合RustFS官网提到的,他对S3协议是100%兼容,我今天在本地使用Docker部署了一下,然后试了一下以前写的上传文件到MinIO的程序,仅仅只修改端点地址和认证信息,其余完全不用动,甚至引入的MinIO SDK都不用修改,就可以直接切到RustFS上,非常丝滑。
接下来,我简单介绍下我这边实践的案例,在此之前,我还是建议各位感兴趣的小伙伴,先看一下官网的介绍👉:rustfs.com/
安装方式
关于RustFS的安装,官方提供了4种方式,Linux,MacOS,Docker和Windows,其中Windows的方案只给了安装说明,还没有安装文件,所有,为了快速验证,我这里使用的是基于Docker的方案
环境验证
使用Docker方案的话,对环境的要求不多,主要是docker版本高于20.10就ok,其他的要求和安装其他容器大体一样,防火墙,配置文件等,具体大家可以参照官网说明。

拉取镜像
这个也没啥好说,开发环境的话,直接使用最新的镜像即可
bash
docker pull rustfs/rustfs

启动容器
镜像拉取下来后,可以启动容器了,这点官方文档的说明很详细,基本是照着生产部署级别写的,而实际上我们如果只在本地测试的话,可以不用那么复杂,毕竟技术验证阶段,快速跑通,降低心智负担是第一位的。
我这里的启动脚本如下
ini
docker run -d \
--name rustfs \
--rm \
-p 9000:9000 \
-p 7000:7000 \
-v $(pwd):/data \
-e RUSTFS_ACCESS_KEY=rustfsadmin \
-e RUSTFS_SECRET_KEY=rustfsadmin \
-e RUSTFS_CONSOLE_ENABLE=true \
-e RUSTFS_ADDRESS=:9000 \
-e RUSTFS_SERVER_DOMAINS=localhost:9000 \
rustfs/rustfs:latest
简单说明一下各参数,更具体的可以参见官方文档。
- -d:后台运行容器
- --name rustfs 给容器命名,方便管理
- -p 9000:9000 映射宿主机 9000 端口到容器(S3 API 和 Console)
- -p 7000:7000 如果启用了其他服务(如 play server),也需要映射
- -v $(pwd):/data 挂载当前目录为数据卷
- -e RUSTFS_ACCESS_KEY=... 设置 S3 访问密钥
- -e RUSTFS_SECRET_KEY=... 设置 S3 秘密密钥
- -e RUSTFS_CONSOLE_ENABLE=true 启用 Web 控制台(关键!)
- -e RUSTFS_ADDRESS=:9000 指定监听地址和端口
- -e RUSTFS_SERVER_DOMAINS=localhost:9000 允许从 localhost 访问控制台
验证访问
启动后,可以在容器里看到一些日志输出,说正常启动了,这里可以在控制台里输入
docker logs rustfs
如果你也用的Docker desktop的话,也可以直接查看容器输出的实时日志👇

S3客户端验证
如果之前用过MinIO的话,本地应该会安装mc的客户端,这也是官方提供的验证方式,当然其他S3客户端也是ok的,我没试,只测试了mc,可以说非常丝滑
bash
# 建立连接
mc alias set rustfs http://localhost:9000 rustfsadmin rustfsadmin
# 创建bucket
mc mb rustfs/test
# 传个文件
mc cp G:\test.jpg rustfs/test
# 看一下传上去没
mc ls rustfs/test
执行截图👇

至此,基本的安装和技术验证可以告一段落,接下来再试一下对接开发效果如何
注意,我这里的案例,只适用于快速在开发场景中验证RustFS的可用性,不适合生产环境,建议仔细阅读官方文档。
开发测试
开发测试的代码,我在之前写过一篇博客,是基于MinIO的,我这里就只是修改了一下配置参数,其余代码一点不带动的,测试效果也非常好。
为了精简文章内容,原来的代码我就不贴了,大家可以在这里去看
👉:掘金博客地址:juejin.cn/post/741836...
👉:公众号文章地址:mp.weixin.qq.com/s/uXR6WxDI9...
修改的地方,只有配置文件
json
"MinioSettings": {
"Endpoint": "localhost:9000",
"AccessKey": "rustfsadmin",
"SecretKey": "rustfsadmin",
"UseSSL": false
}
操作过程如下gif

代码的话,我觉得不是很重要,就不贴了,感兴趣可以去上面提到的2个地址了解一下,而且现在有AI了,写一个基于RustFS的操作类也很方便,最主要的还是思路的验证。
结语
好了至此,整个部署安装和开发验证环节结束。
可以说RustFS现阶段的表现,可以很好的支撑起在内部构件一个企业级的对象存储集群,相较于MinIO来说,我觉得不能说是替代了,它比RustFS表现更出彩。还是推荐搭建看一下官方的介绍和社区讨论,RustFS值得你花点时间去了解。
然后,今天是9.3,上午看了阅兵,非常非常提气,下午花了点时间验证了RustFS,效果好的也让我感觉到非常非常提气,这是国人开发的,我们的软硬件实力真的越来越强大。
最后,祝祖国繁荣昌盛。