找回密码
 立即注册
首页 业界区 业界 用 UI、MinIO Client、API 操作 RustFS 存储桶

用 UI、MinIO Client、API 操作 RustFS 存储桶

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


  • 一个可用的 RustFS 实例
在 UI 上创建/删除存储桶

创建存储桶

登录 RustFS UI 控制台,在首页,左上角,选择创建存储桶
1.png

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

点击创建 即可创建成功。
上传文件到存储桶

选择要上传文件的存储桶,在存储桶顶部可以看到上传文件/文件夹 、新建目录 、新建文件 按钮:
3.png

点击上传文件/文件夹
4.png

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

删除存储桶中的文件

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

删除存储桶

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

注意 :需要将存储桶下面的数据删除才可以删除存储桶,否则无法直接删除存储桶。
用 mc创建/删除存储桶

前提条件


  • 安装好了 MinIO Client(可用 mc --version确认)
  • 用 mc alias 配置好存储系统别名
创建存储桶

使用 mc mb来创建存储桶:
  1. # 创建存储桶
  2. mc mb rustfs/bucket-creation-by-mc
  3. Bucket created successfully `rustfs/bucket-creation-by-mc`.
  4. # 确认存储桶
  5. mc ls rustfs/bucket-creation-by-mc
复制代码
在 UI 上可以看到 bucket-creation-by-mc已创建出:
8.png

上传文件到存储桶

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

删除存储桶中的文件

使用 mc rm删除存储桶中的文件:
  1. # 删除文件
  2. mc rm rustfs/bucket-creation-by-mc/1.txt
  3. Removed `rustfs/bucket-creation-by-mc/1.txt`.
  4. # 删除确认
  5. mc ls  rustfs/bucket-creation-by-mc/1.txt
复制代码
在 UI 上可以看到 bucket-creation-by-mc 存储桶下面已经没有了 1.txt文件:
10.png

删除存储桶

用 mc rb删除存储桶:
  1. # 删除桶存储
  2. mc rb rustfs/bucket-creation-by-mc
  3. Removed `rustfs/bucket-creation-by-mc` successfully.
  4. # 删除确认
  5. mc ls rustfs/bucket-creation-by-mc
  6. mc: <ERROR> Unable to list folder. Bucket `bucket-creation-by-mc` does not exist.
复制代码
在 UI 上也可以看到 bucket-creation-by-mc已经不存在。
用 API 创建/删除存储桶

创建存储桶

使用如下 API 可创建存储桶:
  1. PUT /{bucketName} HTTP/1.1
复制代码
比如用 curl发送如下命令:
  1. curl --location --request PUT 'http://12.34.56.78:9000/bucket-creation-by-api' \
  2. --header 'X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' \
  3. --header 'X-Amz-Date: 20250801T023519Z' \
  4. --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'
  5. 可以在 UI 上确认 bucket-creation-by-api创建成功。
复制代码
注意 :需要将 Credential=H4xcBZKQfvJjEnk3zp1N 中的值替换为自己 RustFS 实例的访问密钥。
上传文件到存储桶

使用如下 API 上传文件到存储桶:
  1. PUT /{bucketName}/{objectName} HTTP/1.1
复制代码
比如用如下 curl命令上传 password.txt到bucket-creation-by-api存储桶:
  1. curl --location --request PUT 'http://12.34.56.78:9000/bucket-creation-by-api/password.txt' \
  2. --header 'Content-Type: text/plain' \
  3. --header 'X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' \
  4. --header 'X-Amz-Date: 20250801T024840Z' \
  5. --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' \
  6. --data-binary '@/path/to/password.txt'
复制代码
可在 UI 上确认 password.txt文件已上传至 bucket-creation-by-api存储桶:
11.png

注意 :需要将 Credential=H4xcBZKQfvJjEnk3zp1N 中的值替换为自己 RustFS 实例的访问密钥。
删除存储桶

使用如下 API 删除存储桶:
  1. DELETE /{bucketName} HTTP/1.1
复制代码
比如用 curl发送如下命令:
  1. curl --location --request DELETE 'http://12.34.56.78:9000/bucket-creation-by-api' \
  2. --header 'X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' \
  3. --header 'X-Amz-Date: 20250801T024406Z' \
  4. --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'
  5. 可在 UI 确认 bucket-creation-by-api 已被删除。
复制代码
注意 :需要将 Credential=H4xcBZKQfvJjEnk3zp1N 中的值替换为自己 RustFS 实例的访问密钥。
删除存储桶中的文件

使用如下 API 删除存储桶中的文件:
  1. DELETE /{bucketName}/{objectName} HTTP/1.1
复制代码
比如用 curl发送如下命令:
  1. curl --location --request DELETE 'http://12.34.56.78:9000/bucket-creation-by-api/password.txt' \
  2. --header 'Content-Type: text/plain' \
  3. --header 'X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' \
  4. --header 'X-Amz-Date: 20250801T030822Z' \
  5. --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' \
  6. --data-binary '@/Users/jhma/Desktop/password.txt'
  7. 可在 UI 确认 bucket-creation-by-api下的 password.txt文件已被删除。
复制代码
注意 :需要将 Credential=H4xcBZKQfvJjEnk3zp1N中的值替换为自己 RustFS 实例的访问密钥。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册