用 mc 对 RustFS 对象存储进行操作

mc(minio client)是一个与 Minio 对象存储服务兼容的命令行工具,能够对 minio 进行操作,诸如文件的上传、下载、删除等。由于 RustFS 是 MinIO 的国产替代,因此可以用 mc 对 RustFS 进行相关操作。

mc 和 RustFS 的安装

mc 的安装比较简单,可以根据不同的 OS(Ubuntu、CentOS、macOS 等)进行一键式安装。比如在 macOS 上可以直接使用如下命令行完成安装:

安装 mc

bash 复制代码
brew install minio/stable/mc

确认安装

sql 复制代码
mc --version
mc version RELEASE.2025-07-21T05-28-08Z (commit-id=ee72571936f15b0e65dc8b4a231a4dd445e5ccb6)
Runtime: go1.24.5 darwin/arm64
Copyright (c) 2015-2025 MinIO, Inc.
License GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>

RustFS 是用 Rust 编写的新一代对象存储系统,是 MinIO 的国产替代,而且在性能上也由于 MinIO,同时完全兼容 S3。RustFS 支持通过二进制、Docker 或 K8S 进行安装。根据 RustFS 官网安装教程,执行如下命令即可完成安装:

安装

arduino 复制代码
curl -O  https://rustfs.com/install_rustfs.sh && bash install_rustfs.sh

确认安装

yaml 复制代码
rustfs --version
rustfs 1.0.0-alpha.35
build time   : 2025-07-21 09:24:22 +00:00
build profile: release
build os     : linux-x86_64
rust version : rustc 1.88.0 (6b00bc388 2025-06-23)
rust channel : stable-x86_64-unknown-linux-gnu
git branch   :
git commit   : bebd78fbbb57edab6454a2b82fe49c006a708d49
git tag      : 1.0.0-alpha.35
git status   :

然后使用默认用户名和密码(均为 rustfsadmin)通过 localhost:9000进行登录:

mc 操作 RustFS

访问密钥的创建

mc 的使用需要用到 RustFS 的访问密钥。在 RustFS 控制台 --> 左侧导航栏 --> 访问密钥 --> 添加访问密钥 来新建访问密钥,填写好访问密钥的名称、描述以及过期时间即可创建成功:

保存好访问密钥,接下来会用到。

别名配置

首先使用 mc alias 给 RustFS 实例配置好别名:

bash 复制代码
mc alias set rustfs http://rustfs.example.com:9000 ACCESS_KEY SECRET_KEY

ACCESS_KEYSECRET_KEY 替换为之前步骤中创建的访问密钥,将 rustf.example.com替换为 RustFS 实例的具体地址。

返回响应:

go 复制代码
Added `rustfs` successfully.

mc的使用

列出存储桶

使用 mc ls 列出所有的存储桶:

csharp 复制代码
mc ls rustfs
[2025-07-23 15:01:45 CST]     0B job-cache/
[2025-07-15 18:20:37 CST]     0B lfs/
[2025-07-29 09:15:35 CST]     0B rustfs-demo/
[2025-07-15 18:21:07 CST]     0B ci-secure-files/
[2025-07-15 18:20:47 CST]     0B packages/
[2025-07-26 11:35:02 CST]     0B ai-image/
[2025-07-15 18:20:24 CST]     0B artifacts/
[2025-07-15 18:20:43 CST]     0B uploads/
[2025-07-15 18:20:59 CST]     0B terraform-state/
[2025-07-15 18:20:53 CST]     0B dependency-proxy/
[2025-07-15 18:20:33 CST]     0B external-diffs/
[2025-07-15 18:21:11 CST]     0B pages/

使用 mc ls rustfs/example-bucket列出某个存储桶的数据:

bash 复制代码
mc ls rustfs/ci-secure-files
[2025-07-30 22:26:56 CST]     0B 19/

创建存储桶

使用 mc mb 创建存储桶:

bash 复制代码
mc mb rustfs/mc-usage
Bucket created successfully `rustfs/mc-usage`.

删除存储桶

使用 mc rb删除存储桶

bash 复制代码
mc rb rustfs/mc-usage
Removed `rustfs/mc-usage` successfully.

上传文件到存储桶

使用 mc cp上传文件到存储桶:

bash 复制代码
# 生成测试文件
echo "Hello RustFS" > 1.txt

# 创建测试存储桶
mc mb rustfs/mc-usage
Bucket created successfully `rustfs/mc-usage`.

# 上传文件
mc cp 1.txt rustfs/mc-usage
/tmp/1.txt:            13 B / 13 B  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓  64 B/s 0s%

# 查看文件
mc ls rustfs/mc-usage
[2025-07-30 22:31:29 CST]    13B 1.txt

删除存储桶中的文件

使用 mc rm 删除存储中的文件:

bash 复制代码
mc rm rustfs/mc-usage/1.txt
Removed `rustfs/mc-usage/1.txt`.

mc 还有很多其他用户,可以使用 mc -help进行查看。

相关推荐
m0_480502641 天前
Rust 入门 生命周期-next2 (十九)
开发语言·后端·rust
寻月隐君2 天前
Rust Web 开发实战:使用 SQLx 连接 PostgreSQL 数据库
后端·rust·github
Moonbit3 天前
MoonBit Pearls Vol.05: 函数式里的依赖注入:Reader Monad
后端·rust·编程语言
Vallelonga3 天前
Rust 异步中的 Waker
经验分享·rust·异步·底层
m0_480502643 天前
Rust 入门 KV存储HashMap (十七)
java·开发语言·rust
Include everything3 天前
Rust学习笔记(三)|所有权机制 Ownership
笔记·学习·rust
码码哈哈爱分享4 天前
Tauri 框架介绍
css·rust·vue·html
寻月隐君4 天前
硬核实战:从零到一,用 Rust 和 Axum 构建高性能聊天服务后端
后端·rust·github
m0_480502645 天前
Rust 入门 泛型和特征-特征对象 (十四)
开发语言·后端·rust
RustFS5 天前
如何用 Rust 对 RustFS MCP Server 进行扩展?
rust