当前位置: 首页 > news >正文

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

MinIO 是全球知名的对象存储系统,开源免费,但是最近两年 MinIO 在开源版本上删除了一些对用户很重要的功能(比如 UI 操作),引发了社区、用户的不满。为此,国内研发团队基于 Rust 自研了一套 MinIO 平替 —— RustFS。RustFS 完全兼容 S3,是 MinIO 的平替。目前 RustFS 已经开源。本文分享 RustFS 存储桶操作的三种方法。

存储桶是 RustFS 存储数据的最基本单元,可以通过 UI、mc(MinIO Client)或 API 来对存储桶进行操作(创建或删除)。

前提条件

  • 一个可用的 RustFS 实例

在 UI 上创建/删除存储桶

创建存储桶

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

image

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

image

点击创建 即可创建成功。

上传文件到存储桶

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

image

点击上传文件/文件夹

image

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

image

删除存储桶中的文件

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

image

删除存储桶

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

image

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

用 mc创建/删除存储桶

前提条件

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

创建存储桶

使用 mc mb来创建存储桶:

# 创建存储桶
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已创建出:

image

上传文件到存储桶

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

# 上传文件
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文件:

image

删除存储桶中的文件

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

# 删除文件
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文件:

image

删除存储桶

mc rb删除存储桶:

# 删除桶存储
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发送如下命令:

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.txtbucket-creation-by-api存储桶:

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存储桶:

image

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

删除存储桶

使用如下 API 删除存储桶:

DELETE /{bucketName} HTTP/1.1

比如用 curl发送如下命令:

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 删除存储桶中的文件:

DELETE /{bucketName}/{objectName} HTTP/1.1

比如用 curl发送如下命令:

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 实例的访问密钥。

http://www.sczhlp.com/news/3105/

相关文章:

  • 小公司管理:警惕大厂的“成功方程式”
  • STM32 adc采集数据存到SD卡中
  • SI3262-C 高精度电容式触摸传感器芯片 ——智能触控,精准响应,赋能人机交互新体验
  • 9
  • 提升软件工厂关键领域供应链检测能力的整体策略
  • 2025年8月1日
  • 【cpp八股】个人记录,持续更新
  • 企业级 AI 开发新范式:JBoltAI 成熟解决方案分享
  • SpringBoot 基座版 JBoltAI,助力企业数智化转型
  • RAG 技术实践:JBoltAI 知识库解决方案详解
  • JBoltAI:Java 企业级 AI 应用开发的最佳选择
  • JBoltAI 向量数据库操作指南:从存储到检索
  • 研发效能革命:Bug管理工具如何重塑软件质量保障体系
  • 社区集结令:Dora-rs 官方交流群正式开放!
  • xxxxx
  • 数据结构 题目分析(牛逼做法非题解做法)
  • 2025牛客暑期多校训练营6
  • linux中HADOOP_HOME和JAVA_HOME删除后依然指向旧目录
  • 书架上有 21 本书,编号从 1 到 21。现从中选取 4 本,要求这 4 本书的编号互不相邻。 问共有多少种不同的选法?
  • LGP8435 [LG TPLT] 点双连通分量 学习笔记
  • 营业执照年审
  • led流水灯
  • 三分钟带你读懂`strcpy`和`memcpy`
  • 前端-回调函数
  • LangChain框架入门03:PromptTemplate 提示词模板
  • 前瞻与回顾:长期个性化对话代理的反射式记忆管理技术
  • 深度解析SUCURI 2018年被黑网站趋势报告:CMS漏洞与恶意软件家族分析
  • Disruptor - Charlie
  • 第二十一日
  • 主要SAP系统实施伙伴优德普-华东区经验丰富的SAP ERP实施服务商