官网:
-
英文网址(最好查看英文网址):
https://min.io/
-
中文网址(没有及时更新,容易被坑):
http://www.minio.org.cn/
使用的 minio 版本是:RELEASE.2021-11-*
一、MinIO 客户端工具安装
MinIO 提供客户端工具访问和操作服务端。
MinIO 客户端工具 mc(minio client)
,提供了类似 unix 的命令去操作服务端。mc 相关命令列表如下所示(请查看英文官网):
ls 列出文件和文件夹。
mb 创建一个存储桶或一个文件夹。
cat 显示文件和对象内容。
pipe 将一个STDIN重定向到一个对象或者文件或者STDOUT。
share 生成用于共享的URL。
cp 拷贝文件和对象。
mirror 给存储桶和文件夹做镜像。
find 基于参数查找文件。
diff 对两个文件夹或者存储桶比较差异。
rm 删除文件和对象。
events 管理对象通知。
watch 监听文件和对象的事件。
policy 管理访问策略。
session 为cp命令管理保存的会话。
config 管理mc配置文件。
update 检查软件更新。
version 输出版本信息。
下载安装 MinIO Client的方式好几种,这里基于 Linux和 Windows两种安装方式,更多查看官网。
1、基于 Linux安装mc
[root@centos7 ~]# wget https://dl.min.io/client/mc/release/linux-amd64/mc
[root@centos7 ~]# ls
abc anaconda-ks.cfg manpages-zh-1.5.2 mc minio
[root@centos7 ~]# chmod +x ./mc
[root@centos7 ~]# ls
abc anaconda-ks.cfg manpages-zh-1.5.2 mc minio
[root@centos7 ~]# ./mc --help
NAME:
mc - MinIO Client for cloud storage and filesystems.
....
[root@centos7 /]# mc --help
-bash: mc: 未找到命令
下载的文件在 ~目录中, 每次都要进入 ~目录或者指定mc所在目录,才能使用。
如果我们想在任何目录中使用 mc。把 mc文件放到
/usr/local/sbin/目录
中,就可以了。
[root@centos7 ~]# mv ./mc /usr/local/sbin/
[root@centos7 /]# mc --help
NAME:
...
2、基于 Windows安装mc
如果我们想在任何目录中使用 mc。把下载好的 mc.exe文件放到
C:\Windows\System32
目录中,就可以了。
安装 MinIO Client就是这么简单。
默认的配置目录在C盘,可以通过
--config-di参数
自定义配置目录。
查看命令使用语法:
- 直接数据命令回车即可,比如:mc config
- 使用 – help参数,比如:mc config – help
二、mc命令使用
这里简单操作几个命令。
1、mc config命令 – 管理配置文件
D:\DownUpLoadTempFiles>mc config
NAME:
mc config - configure MinIO client
USAGE:
mc config COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...]
COMMANDS:
host add, remove and list hosts in configuration file
FLAGS:
--config-dir value, -C value path to configuration folder (default: "C:\\Users\\xxx\\mc")
--quiet, -q disable progress bar display
--no-color disable color theme
--json enable JSON lines formatted output
--debug enable debug output
--insecure disable SSL certificate verification
--help, -h show help
第一次查看,没有我们的 minio服务端
D:\DownUpLoadTempFiles>mc config host ls
...
1.1 添加 MinIO服务
mc config host add docker_minio1 http://ip:9000 用户名 密码
D:\DownUpLoadTempFiles>mc config host add docker_minio1 http://xxx.xxx.xxx.xxx:9000 用户名 密码
Added `doker_minio1` successfully.
D:\DownUpLoadTempFiles>mc ls docker_minio1
[2021-11-21 16:11:27 CST] 0B test1/
1.2 删除 MinIO服务
mc config host remove doker_minio1
D:\DownUpLoadTempFiles>mc config host remove docker_minio1
Removed `doker_minio1` successfully.
2、ls命令 – 列出对象
ls命令列出文件、对象和存储桶。
D:\DownUpLoadTempFiles>mc ls doker_minio1
[2021-11-21 16:11:27 CST] 0B test1/
3、mb命令 – 创建存储桶
mb命令在对象存储上创建一个新的存储桶。MinIO对每个用户创建的存储桶数量没有限制。
注意
:
必须带上 host名字
## 在我们的 docker_test1 服务端创建一个 btest2桶
D:\DownUpLoadTempFiles>mc mb docker_minio1/btest2
Bucket created successfully `docker_minio1/btest2`.
D:\DownUpLoadTempFiles>mc ls docker_minio1
[2021-11-21 23:23:48 CST] 0B btest2/
[2021-11-21 16:11:27 CST] 0B test1/
3.1 递归创建桶
不需要我们加参数,和普通创建单个桶一样,MinIO 会递归创建。
D:\DownUpLoadTempFiles>mc mb docker_minio1/btest3/2021/11/21
Bucket created successfully `docker_minio1/btest3/2021/11/21`.
D:\DownUpLoadTempFiles>mc tree docker_minio1
docker_minio1
├─ btest2
├─ btest3
│ └─ 2021
│ └─ 11
│ └─ 21
└─ test1
4、rm命令 – 删除存储桶和对象。
注意
:
必须带上 host名字
用法:
mc rm [FLAGS] TARGET [TARGET ...]
FLAGS:
--help, -h 显示帮助。
--recursive, -r 递归删除。
--force 强制执行删除操作。
--prefix 删除批配这个前缀的对象。
--incomplete, -I 删除未完整上传的对象。
--fake 模拟一个假的删除操作。
--stdin 从STDIN中读对象列表。
--older-than value 删除N天前的对象(默认是0天)。
删除一个存储桶并递归删除里面所有的内容。由于这个操作太危险了,你必须传
--force
参数指定强制删除。
D:\DownUpLoadTempFiles>mc rb docker_minio1/btest2
Removed `docker_minio1/btest2` successfully.
D:\DownUpLoadTempFiles>mc ls docker_minio1
[2021-11-21 16:11:27 CST] 0B test1/
# bucket不为空,可以强制删除 慎用
D:\DownUpLoadTempFiles>mc rb --recursive --force docker_minio1/btest2
5、cp命令 – 拷贝对象
cp命令拷贝一个或多个源文件目标输出。所有到对象存储的拷贝操作都进行了MD4SUM checkSUM校验。可以从故障点恢复中断或失败的复制操作。
USAGE:
mc cp [FLAGS] SOURCE [SOURCE...] TARGET
FLAGS:
--rewind value roll back object(s) to current version at specified time
--version-id value, --vid value select an object version to copy
--recursive, -r copy recursively 递归拷贝
--older-than value copy object(s) older than N days (default: 0)
--newer-than value copy object(s) newer than N days (default: 0)
--storage-class value, --sc value set storage class for new object(s) on target
--preserve,-a preserve file system attributes and bucket policy rules on target bucket(s)
--attr add custom metadata for the object (format: KeyName1=string;KeyName2=string)
--continue, -c create or resume copy session
--encrypt value encrypt/decrypt objects (using server-side encryption with server managed keys)
--encrypt-key value encrypt/decrypt objects (using server-side encryption with customer provided keys)
--tags value apply tags to the uploaded objects (eg. key=value&key2=value2, etc)
--help, -h show help
ENVIRONMENT VARIABLES:
MC_ENCRYPT: list of comma delimited prefixes
MC_ENCRYPT_KEY: list of comma delimited prefix=secret values
注意
:
下面操作必须带上 host名字
5.1 下载 minio文件到本地
D:\DownUpLoadTempFiles>mc ls docker_minio1
[2021-11-21 16:11:27 CST] 0B test1/
D:\DownUpLoadTempFiles>mc cp docker_minio1/test1/6.8.7.jpg D:\TempFiles
.../test1/6.8.7.jpg: 187.17 KiB / 187.17 KiB [=========================================================] 8.09 MiB/s 0s
5.2 上传本地文件到 minio的桶中
D:\DownUpLoadTempFiles>mc cp D:\DownUpLoadTempFiles\1027秋.zip docker_minio1/test1
...s\1027秋.zip: 20.50 MiB / 20.50 MiB [============================================================] 50.08 MiB/s 0s
D:\DownUpLoadTempFiles>mc ls docker_minio1/test1
[2021-11-21 23:17:19 CST] 20MiB 1027秋.zip
[2021-11-21 16:11:41 CST] 187KiB 6.8.7.jpg
5.3 复制 minio文件到 minio另一个桶(同一个host)
这里复制 桶 test1中的文件到 桶 btest2中
D:\DownUpLoadTempFiles>mc cp docker_minio1/test1/1027秋.zip docker_minio1/btest2
...1/1027秋.zip: 20.50 MiB / 20.50 MiB [===========================================================] 175.00 MiB/s 0s
D:\DownUpLoadTempFiles>mc ls docker_minio1/btest2
[2021-11-21 23:33:05 CST] 20MiB 1027秋.zip
5.4 复制 minio文件到 minio的桶中(不同host)
添加另一个 minio服务,查看桶。
D:\DownUpLoadTempFiles>mc config host add linux_minio1 http://xxx xxx xxx
Added `linux_minio1` successfully.
D:\DownUpLoadTempFiles>mc ls linux_minio1
[2021-11-21 23:49:24 CST] 0B b19test/
我们把 docker_minio1的 btest3桶下的文件批量递归 复制到 linux_minio1的 b19test桶中。
注意:
必须指定目的 host的已存在桶。
D:\DownUpLoadTempFiles>mc cp --recursive docker_minio1/btest3 linux_minio1/b19test
...11/21/初三.ace: 102.96 MiB / 102.96 MiB [==========================================================] 66.26 MiB/s 1s
D:\DownUpLoadTempFiles>mc tree --files linux_minio1/
linux_minio1/
└─ b19test
└─ btest3
└─ 2021
└─ 11
├─ 20
│ └─ 0817.ace
└─ 21
├─ 100元.jpg
└─ 初三.ace
D:\DownUpLoadTempFiles>mc cp --recursive docker_minio1/btest3 linux_minio1/b19test2
mc: <ERROR> Failed to copy `http://xxx:9000/btest3/2021/11/20/0817.ace`. Bucket `b19test2` does not exist.
mc: <ERROR> Failed to copy `http://xxx:9000/btest3/2021/11/21/100元.jpg`. Bucket `b19test2` does not exist.
mc: <ERROR> Failed to copy `http://xxx:9000/btest3/2021/11/21/初三.ace`. Bucket `b19test2` does not exist.
6、tree命令 – 以树格式列出桶和目录
使用
--files
标志在列表中包含文件/对象。
D:\DownUpLoadTempFiles>mc tree docker_minio1
docker_minio1
├─ btest2
├─ btest3
│ └─ 2021
│ └─ 11
│ ├─ 20
│ └─ 21
└─ test1
D:\DownUpLoadTempFiles>mc tree --files docker_minio1
docker_minio1
├─ btest2
│ └─ 1027秋.zip
├─ btest3
│ └─ 2021
│ └─ 11
│ ├─ 20
│ │ └─ 0817.ace
│ └─ 21
│ ├─ 100元.jpg
│ └─ 初三.ace
└─ test1
├─ 1027秋.zip
└─ 6.8.7.jpg
7、du命令 – 递归地汇总磁盘使用情况
D:\DownUpLoadTempFiles>mc du docker_minio1
82MiB
D:\DownUpLoadTempFiles>mc du docker_minio1/test1
21MiB test1
更多 mc命令和使用详情,请查看官网。
– 求知若饥,虚心若愚。