MinIO客户端mc使用

  • Post author:
  • Post category:其他


官网:

使用的 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命令和使用详情,请查看官网。

– 求知若饥,虚心若愚。



版权声明:本文为qq_42402854原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。