MinIO 是全球知名的对象存储系统,开源免费,但是最近两年 MinIO 在开源版本上删除了一些对用户很重要的功能(比如 UI 操作),引发了社区、用户的不满。为此,国内研发团队基于 Rust 自研了一套 MinIO 平替 ------ RustFS。RustFS 完全兼容 S3,是 MinIO 的平替。目前 RustFS 已经开源。本文分享 RustFS 存储桶操作的三种方法。
存储桶是 RustFS 存储数据的最基本单元,可以通过 UI、mc(MinIO Client)或 API 来对存储桶进行操作(创建或删除)。
前提条件
- 一个可用的 RustFS 实例
在 UI 上创建/删除存储桶
创建存储桶
登录 RustFS UI 控制台,在首页,左上角,选择创建存储桶 :

输入存储桶名称,注意存储桶的命名规则:

点击创建 即可创建成功。
上传文件到存储桶
选择要上传文件的存储桶,在存储桶顶部可以看到上传文件/文件夹 、新建目录 、新建文件 按钮:

点击上传文件/文件夹:

选择上传文件 或上传文件夹,然后点击开始上传即可:

删除存储桶中的文件
如要删除存储桶中的文件,选中文件,然后选择右上角的删除选中项 :

删除存储桶
在存储桶列表页面,找到要删除的存储桶,选择最右侧的删除 按钮,即可删除存储桶:

注意 :需要将存储桶下面的数据删除才可以删除存储桶,否则无法直接删除存储桶。
用 mc创建/删除存储桶
前提条件
- 安装好了 MinIO Client(可用
mc --version
确认) - 用
mc alias
配置好存储系统别名
创建存储桶
使用 mc mb
来创建存储桶:
bash
# 创建存储桶
mc mb rustfs/bucket-creation-by-mc
Bucket created successfully `rustfs/bucket-creation-by-mc`.
# 确认存储桶
mc ls rustfs/bucket-creation-by-mc
在 UI 上可以看到 bucket-creation-by-mc
已创建出:

上传文件到存储桶
使用 mc cp
上传文件到存储桶:
bash
# 上传文件
mc cp 1.txt rustfs/bucket-creation-by-mc
/tmp/1.txt: 13 B / 13 B ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 61 B/s 0s%
# 文件查看
mc ls rustfs/bucket-creation-by-mc
[2025-08-01 10:01:08 CST] 13B 1.txt
在 UI 上可以看到 bucket-creation-by-mc
存储桶下面有一个 1.txt
文件:

删除存储桶中的文件
使用 mc rm删除存储桶中的文件:
bash
# 删除文件
mc rm rustfs/bucket-creation-by-mc/1.txt
Removed `rustfs/bucket-creation-by-mc/1.txt`.
# 删除确认
mc ls rustfs/bucket-creation-by-mc/1.txt
在 UI 上可以看到 bucket-creation-by-mc
存储桶下面已经没有了 1.txt
文件:

删除存储桶
用 mc rb
删除存储桶:
vbnet
# 删除桶存储
mc rb rustfs/bucket-creation-by-mc
Removed `rustfs/bucket-creation-by-mc` successfully.
# 删除确认
mc ls rustfs/bucket-creation-by-mc
mc: <ERROR> Unable to list folder. Bucket `bucket-creation-by-mc` does not exist.
在 UI 上也可以看到 bucket-creation-by-mc已经不存在。
用 API 创建/删除存储桶
创建存储桶
使用如下 API 可创建存储桶:
PUT /{bucketName} HTTP/1.1
比如用 curl发送如下命令:
css
curl --location --request PUT 'http://12.34.56.78:9000/bucket-creation-by-api' \
--header 'X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' \
--header 'X-Amz-Date: 20250801T023519Z' \
--header 'Authorization: AWS4-HMAC-SHA256 Credential=H4xcBZKQfvJjEnk3zp1N/20250801/cn-east-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=c2fb2ba5199a30ebcfa9976d0f35000ba274da3701327957e84ea0f3920288f2'
可以在 UI 上确认 bucket-creation-by-api创建成功。
注意 :需要将 Credential=H4xcBZKQfvJjEnk3zp1N
中的值替换为自己 RustFS 实例的访问密钥。
上传文件到存储桶
使用如下 API 上传文件到存储桶:
PUT /{bucketName}/{objectName} HTTP/1.1
比如用如下 curl命令上传 password.txt
到bucket-creation-by-api
存储桶:
css
curl --location --request PUT 'http://12.34.56.78:9000/bucket-creation-by-api/password.txt' \
--header 'Content-Type: text/plain' \
--header 'X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' \
--header 'X-Amz-Date: 20250801T024840Z' \
--header 'Authorization: AWS4-HMAC-SHA256 Credential=H4xcBZKQfvJjEnk3zp1N/20250801/cn-east-1/s3/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-content-sha256;x-amz-date, Signature=b7d8dc29ee34dfdf1f3e9e8e069892a8936f478586e7a2c90cf34f5b86d3a2dc' \
--data-binary '@/path/to/password.txt'
可在 UI 上确认 password.txt
文件已上传至 bucket-creation-by-api
存储桶:

注意 :需要将 Credential=H4xcBZKQfvJjEnk3zp1N
中的值替换为自己 RustFS 实例的访问密钥。
删除存储桶
使用如下 API 删除存储桶:
sql
DELETE /{bucketName} HTTP/1.1
比如用 curl发送如下命令:
css
curl --location --request DELETE 'http://12.34.56.78:9000/bucket-creation-by-api' \
--header 'X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' \
--header 'X-Amz-Date: 20250801T024406Z' \
--header 'Authorization: AWS4-HMAC-SHA256 Credential=H4xcBZKQfvJjEnk3zp1N/20250801/cn-east-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=d0f6addf09fffd7eef75191e9d3209bb7188e6b004e9707238fc60ad7033edae'
可在 UI 确认 bucket-creation-by-api 已被删除。
注意 :需要将 Credential=H4xcBZKQfvJjEnk3zp1N
中的值替换为自己 RustFS 实例的访问密钥。
删除存储桶中的文件
使用如下 API 删除存储桶中的文件:
sql
DELETE /{bucketName}/{objectName} HTTP/1.1
比如用 curl发送如下命令:
css
curl --location --request DELETE 'http://12.34.56.78:9000/bucket-creation-by-api/password.txt' \
--header 'Content-Type: text/plain' \
--header 'X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' \
--header 'X-Amz-Date: 20250801T030822Z' \
--header 'Authorization: AWS4-HMAC-SHA256 Credential=H4xcBZKQfvJjEnk3zp1N/20250801/cn-east-1/s3/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-content-sha256;x-amz-date, Signature=1ee63bb0b699598602b2fdbd013e355a57bcb9991307a8ad41f6512e8afebf3a' \
--data-binary '@/Users/jhma/Desktop/password.txt'
可在 UI 确认 bucket-creation-by-api下的 password.txt文件已被删除。
注意 :需要将 Credential=H4xcBZKQfvJjEnk3zp1N
中的值替换为自己 RustFS 实例的访问密钥。