MinIO 备忘清单
===
这是 MinIO 语法的快速参考备忘单
MinIO 快速参考
----
### 基本概念
- **对象存储**:存储非结构化数据,如图片、视频等。
- **桶(Bucket)**:MinIO中存储对象的容器,类似于文件夹。
- **对象(Object)**:桶中存储的具体数据。
### 安装MinIO
- 从[MinIO官网](https://min.io/download)下载对应平台的MinIO服务器。
- 根据操作系统的指南进行安装。
### 启动MinIO服务
- 运行MinIO服务器,通常使用以下命令:
```shell
minio server /export/data1 /export/data2 /export/data3 /export/data4
```
- 其中`/export/data1`等是存储数据的路径。
### 访问MinIO
- 使用Web界面访问MinIO,通常是`http://127.0.0.1:9000`。
- 使用客户端工具,如`mc`命令行工具。
### minio client 安装
#### windows
下载
```bash
https://dl.min.io/client/mc/release/windows-amd64/mc.exe
\path\to\mc.exe --help
```
#### mac
安装
```bash
brew install minio/stable/mc
mc --help
```
#### linux
```sh
curl https://dl.min.io/client/mc/release/linux-amd64/mc \
--create-dirs \
-o $HOME/minio-binaries/mc
chmod +x $HOME/minio-binaries/mc
export PATH=$PATH:$HOME/minio-binaries/
```
版本比较多,请去官网查找安装步骤
### mc 连接服务操作
列出所有别名
```bash
mc alias list
```
添加服务别名
```bash
mc alias set myminio https://myminio.example.net minioadminuser minioadminpassword
```
删除服务别名
```bash
mc alias rm myminio
```
### mc 桶操作
创建桶
```sh
mc mb myminio/mybucket
```
删除桶
```sh
mc rb myminio/mybucket
```
设置桶策略
```sh
mc policy set download myminio/mybucket
```
设置桶生命周期
```sh
mc ilm import myminio/mybucket
```
### mc 文件操作
列出文件
```sh
mc ls myminio/mybucket
```
上传文件
```sh
mc cp /path/to/file myminio/mybucket/file
```
下载文件
```sh
mc cp myminio/mybucket/file /path/to/destination
```
删除文件
```sh
mc rm myminio/mybucket/file
```
移动文件
```sh
mc mv myminio/mybucket/file myminio/mybucket/newfile
```
拷贝文件
```sh
mc cp myminio/mybucket/file myminio/mybucket/newfile
```
查找文件
```sh
mc find myminio/mydata --name "*.jpg"
```
### mc 文件夹操作
列出文件夹
```sh
mc ls myminio/mybucket/folder
```
创建文件夹
```sh
mc mb myminio/mybucket/folder
```
删除文件夹
```sh
mc rb myminio/mybucket/folder
```
移动文件夹
```sh
mc mv -r myminio/mybucket/folder myminio/mybucket/newfolder
```
拷贝文件夹
```sh
mc cp -r myminio/mybucket/folder myminio/mybucket/newfolder
```
删除文件夹中的所有文件
```sh
mc rm --recursive myminio/mybucket/folder
```
列出文件夹中的所有文件
```sh
mc ls --recursive myminio/mybucket/folder
```
列出文件夹中的所有文件,包括子文件夹
```sh
mc ls --recursive --include-folders myminio/mybucket/folder
```
### mc 其他操作
列出所有桶
```sh
mc ls myminio
```
显示帮助信息
```sh
mc help
```
版本信息
```sh
mc version
```
Admin 常用管理命令
---
### mc admin 管理操作
`mc admin` 用于管理 MinIO 服务端(需要具备相应管理权限的账号/策略)。
#### 常用全局参数(`mc` 全局,对 `mc admin` 同样适用)
参数 | 说明
---- | ----
`--json` | 输出 JSON,便于脚本解析与自动化处理
`--debug` | 打印调试信息(排查权限/网络/签名等问题)
`--insecure` | 跳过 TLS 证书校验(自签名证书/测试环境常用)
`-C, --config-dir
` | 指定 `mc` 配置目录(多环境隔离)
`-q, --quiet` | 静默模式,减少非必要输出
`--no-color` | 禁用彩色输出(CI/日志更友好)
`--dp, --disable-pager` | 禁用分页器(管道/重定向场景更稳定)
`-H, --custom-header ':'` | 追加自定义 HTTP Header
### mc admin info(节点/集群信息)
查看 MinIO 服务信息(集群/节点/版本等)。
```sh
mc admin info [--offline] TARGET
```
常用参数:
参数 | 说明
---- | ----
`--offline` | 允许在部分节点离线的情况下返回可用信息(排障场景常用)
示例:
```sh
mc admin info myminio
mc admin info --offline myminio
mc admin info --json myminio
```
### mc admin logs(服务端日志)
按需拉取服务端日志输出(可指定节点)。
```sh
mc admin logs [--last ] [--type ] TARGET [NODE]
```
常用参数:
参数 | 说明
---- | ----
`-l, --last ` | 返回最近 N 条日志
`-t, --type ` | 指定服务类型(常见:`minio`)
示例:
```sh
mc admin logs myminio
mc admin logs --last 100 myminio
mc admin logs --type minio myminio
mc admin logs --json --last 200 myminio
mc admin logs myminio http://minio-node-1:9000
```
### mc admin accesskey(访问密钥 / Service Account)
用于创建与管理用户的访问密钥(常用于给应用/CI 生成可控权限的 Service Account)。
> 注:从 `mc` **2024-10-08** 起开始提供 `mc admin accesskey`(旧版本可能使用 `mc admin user svcacct` 等命令族)。
#### create(创建)
```sh
# 用户名可忽略,默认为当前用户
mc admin accesskey create [FLAGS] TARGET [USERNAME]
```
常用参数:
参数 | 说明
---- | ----
`--access-key ` | 指定 Access Key(不指定则自动生成)
`--secret-key ` | 指定 Secret Key(不指定则自动生成)
`--comment ` | 为该密钥添加备注
`--expiry ` | 设置过期时间/有效期(不指定则为永久有效)
`--policy ` | 直接传入策略 JSON(为该密钥绑定权限)
`--policy-file ` | 从文件加载策略 JSON
`--description ` | 描述信息
示例:
```sh
mc admin accesskey create myminio
mc admin accesskey create --comment "ci" --policy-file ./readonly.json myminio appuser
mc admin accesskey create --access-key "$AK" --secret-key "$SK" --expiry 168h myminio appuser
```
#### edit(编辑)
```sh
mc admin accesskey edit [FLAGS] TARGET ACCESSKEY
```
常用参数:
参数 | 说明
---- | ----
`--comment ` | 更新备注
`--expiry ` | 更新过期时间/有效期
`--policy ` | 更新策略 JSON
`--policy-file ` | 从文件更新策略 JSON
`--description ` | 更新描述信息
示例:
```sh
mc admin accesskey edit --comment "rotate-2026-01" myminio "$AK"
mc admin accesskey edit --policy-file ./writeonly.json myminio "$AK"
```
#### info(查看详情)
```sh
mc admin accesskey info TARGET ACCESSKEY
```
示例:
```sh
mc admin accesskey info myminio "$AK"
mc admin accesskey info --json myminio "$AK"
```
#### ls(列表)
```sh
mc admin accesskey ls [FLAGS] TARGET [USERNAME]
```
常用参数:
参数 | 说明
---- | ----
`--all` | 列出所有用户(含临时用户)
`--self` | 仅列出当前用户
`--svcacc-only` | 仅列出临时 STS Key
`--temp-only` | 仅列出有 Access Key 的用户(只返回存在关联密钥的用户)
`--users-only` | 仅列出用户(不含临时 Key)
示例:
```sh
mc admin accesskey ls myminio
mc admin accesskey ls myminio appuser
mc admin accesskey ls --users-only myminio
mc admin accesskey ls --svcacc-only myminio
```
#### enable / disable(启用 / 禁用)
```sh
mc admin accesskey enable TARGET ACCESSKEY
mc admin accesskey disable TARGET ACCESSKEY
```
示例:
```sh
mc admin accesskey disable myminio "$AK"
mc admin accesskey enable myminio "$AK"
```
`$AK` 替换为你的AccessKey
#### rm(删除)
```sh
mc admin accesskey rm TARGET ACCESSKEY
```
示例:
```sh
mc admin accesskey rm myminio "$AK"
```
#### sts-revoke(撤销 STS 临时凭证)
```sh
mc admin accesskey sts-revoke [FLAGS] TARGET [STS-KEY ...]
```
常用参数:
参数 | 说明
---- | ----
`--all` | 撤销全部 STS Key
`--self` | 撤销当前用户的 STS Key
`--token-type ` | 仅撤销指定类型的 Token(例如 `web`、`api`)
示例:
```sh
mc admin accesskey sts-revoke --self myminio
mc admin accesskey sts-revoke --all myminio
mc admin accesskey sts-revoke --token-type web myminio
mc admin accesskey sts-revoke myminio "$STS_KEY"
```
另见
---
- [MinIO官方文档](https://min.io/docs/minio/kubernetes/upstream/) _(min.io)_
- [MinIO github 源码](https://github.com/minio/minio) _(github.com)_