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

# 创建存储桶
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上传文件到存储桶:

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

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

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

注意 :需要将 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 实例的访问密钥。

用 UI、MinIO Client、API 操作 RustFS 存储桶的更多相关文章

  1. Python Client API文档

    官网文档地址:http://docs.minio.org.cn/docs/master/python-client-api-reference 初使化MinIO Client对象 from minio ...

  2. 【知识体系】Kafka文档汇总、组成及架构,配置,常见名词解释,命令行及api操作,官方文档内容,各部分深入,zookeeper和security,监控和运维

    〇.相关资料 1.快速搭建文档: 2.详细讲义 3.在线官方文档:http://kafka.apache.org/documentation/ 4.Kafka知识个人总结 5.KafkaPPT汇报 链 ...

  3. MinIO Client完全指南

    官方文档地址:http://docs.minio.org.cn/docs/master/minio-client-complete-guide 下载,添加云存储服务参考这篇文章:https://www ...

  4. UI Framework-1: Aura Client API

    Client API The Aura Client API is an API Aura uses to communicate with the client application using ...

  5. Amazon S3 对象存储Java API操作记录(Minio与S3 SDK两种实现)

    缘起 今年(2023年) 2月的时候做了个适配Amazon S3对象存储接口的需求,由于4月份自学考试临近,一直在备考就拖着没总结记录下,开发联调过程中也出现过一些奇葩的问题,最近人刚从考试缓过来顺手 ...

  6. MongoDB Java API操作很全的整理

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,一般生产上建议以共享分片的形式来部署. 但是MongoDB官方也提供了其它语言的客户端操作API.如下图所示: 提供了C.C++ ...

  7. Dynamics 365中的Client API form context (formContext)

    适用于Dynamics 365 for Customer Engagement apps 9.x版本. 本文是一篇翻译,原文来源是微软官方文档. 本文链接:https://www.cnblogs.co ...

  8. ecshop /api/client/api.php、/api/client/includes/lib_api.php SQL Injection Vul

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 ECShop存在一个盲注漏洞,问题存在于/api/client/api. ...

  9. Memcached Java Client API详解

    针对Memcached官方网站提供的java_memcached-release_2.0.1版本进行阅读分析,Memcached Java客户端lib库主要提供的调用类是SockIOPool和MemC ...

  10. HBASE的读写以及client API

    一:读写思想 1.系统表 hbase:namespace 存储hbase中所有的namespace的信息 hbase:meta rowkey:hbase中所有表的region的名称 column:re ...

随机推荐

  1. Python标准库之Collections---Container datatype

    Deques Deques,即 Double-ended-queues,是支持线程安全,内存高效的列表类对象.Deques是可改变的,支持索引等类似于list的操作,然而,我们不能直接对Deques进 ...

  2. github常见开源协议概括

    None / No License 默认协议,不允许他人复杂.分发.修改.使用,只能fork下来看 Apache License 2.0 允许个人使用.商业使用.复制.修改.分发,但是出了事作者免责, ...

  3. React-Native开发鸿蒙NEXT-蓝牙与图片处理的更正补充

    .markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...

  4. Java 线程池会自动关闭吗|转

      在展开描述之前,我们综述一下哪些场景,线程池会自动关闭: 没有引用指向且没有剩余线程的线程池 核心线程数为0且存活时间大于零的线程池 Executors.newCachedThrteadPool( ...

  5. Java 实现文件和base64字符串互转

    项目中遇到需要将图片转成base64编码的字符串的需求,但是,考虑到扩展性,写了一个可以转换任务类型文件的方法.需要引入的包: <dependency> <groupId>co ...

  6. 搭建第一个vue项目

    第一:你需要在Windows环境下面搭建vue的开发环境,具体可参考如下的地址: https://www.cnblogs.com/zhaomeizi/p/8483597.html 第二:当你搭建好之后 ...

  7. Golang defer

    一.多个延迟执行语句的处理顺序 Go语言中defer语句会将起后面跟随的语句进行延迟处理,在defer归属的函数即将返回时,将延迟处理的语句按照defer的逆序进行执行,也就是说先被defer的语句最 ...

  8. Moby 项目 - 开源容器化工具集

    项目标题与描述 Moby 是一个开源项目,由 Docker 创建,旨在推动和加速软件容器化.它提供了一套"乐高积木"式的工具组件.组装这些组件成为自定义容器系统的框架,以及供所有容 ...

  9. HarmonyOS免密认证方案 助力应用登录安全升级

    6月21日,2025年华为开发者大会"安全与隐私分论坛"在松山湖顺利举办.本论坛聚焦App治理与监管.星盾安全2.0的核心能力等进行深度分享与探讨.其中,HarmonyOS Pas ...

  10. Atcoders [AGC014D] Black and White Tree 题解

    AT_agc014_d [AGC014D] Black and White Tree 我们充分发扬人类智慧. 不难发现如果树根确定的情况下,先手会从叶子的父亲开始填,如果填到某两棵子树的白点中刚好是同 ...