如何用 MinIO Client(mc)操作 RustFS?

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

mc 和 RustFS 的安装

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

安装 mc

brew install minio/stable/mc

确认安装

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 官网安装教程,执行如下命令即可完成安装:

安装

curl -O  https://rustfs.com/install_rustfs.sh && bash install_rustfs.sh

确认安装

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 实例配置好别名:

mc alias set rustfs http://rustfs.example.com:9000 ACCESS_KEY SECRET_KEY

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

返回响应:

Added `rustfs` successfully.

mc的使用

列出存储桶

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

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列出某个存储桶的数据:

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

创建存储桶

使用 mc mb 创建存储桶:

mc mb rustfs/mc-usage
Bucket created successfully `rustfs/mc-usage`.

删除存储桶

使用 mc rb删除存储桶

mc rb rustfs/mc-usage
Removed `rustfs/mc-usage` successfully.

上传文件到存储桶

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

# 生成测试文件
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 删除存储中的文件:

mc rm rustfs/mc-usage/1.txt
Removed `rustfs/mc-usage/1.txt`.

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

在C#中使用MinIO Client下载文件,可按以下步骤实现: 1. 确保已安装MinIO的C#客户端库。可以通过NuGet包管理器来安装`Minio`包。 2. 建立MinIO客户端连接,可参考如下代码: ```csharp using Minio; class MinIOClientExample { static private MinioClient minioClient = null; static public bool getMinoConnection(string IP) { try { if (IP == "192.168.50.196" || IP == "192.168.50.195") { minioClient = new MinioClient().WithEndpoint("192.168.50.196", 9000) .WithCredentials("KW5xQbKfmJ787YLGescu", "ANB72EgBqNGTdTGKE8KOad0DbuJ1sZtGCLE81234") .Build(); } else if (IP == "192.168.10.211" || IP == "192.168.10.212") { minioClient = new MinioClient().WithEndpoint("192.168.10.211", 9000) .WithCredentials("2MX2wsBGWIklR9EFdamG", "1234T0oLarccqIqc7ef406KWhTT0EkqreaAzELtY") .Build(); } } catch (Exception ex) { Console.Out.WriteLine(ex.Message); return false; } return true; } } ``` 3. 使用`GetObjectAsync`方法来下载文件,示例代码如下: ```csharp using System; using System.IO; using System.Threading.Tasks; class Program { static async Task Main() { if (MinIOClientExample.getMinoConnection("192.168.50.196")) { string bucketName = "your-bucket-name"; string objectName = "your-object-name"; string filePath = "local-file-path"; try { var getObjectArgs = new GetObjectArgs() .WithBucket(bucketName) .WithObject(objectName) .WithFileName(filePath); await MinIOClientExample.minioClient.GetObjectAsync(getObjectArgs); Console.WriteLine("File downloaded successfully."); } catch (Exception e) { Console.WriteLine($"Error occurred: {e}"); } } } } ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值