Minio入门系列【3】MinIO Client使用详解

1 简介

简称mc,是minio服务器的客户端,对ls,cat,cp,mirror,diff,find等UNIX命令提供了一种替代方案,它支持文件系统和兼容Amazon S3的云存储服务(AWS Signature v2和v4)。

ls       列出文件和文件夹。
mb       创建一个存储桶或一个文件夹。
cat      显示文件和对象内容。
pipe     将一个STDIN重定向到一个对象或者文件或者STDOUT。
share    生成用于共享的URL。
cp       拷贝文件和对象。
mirror   给存储桶和文件夹做镜像。
find     基于参数查找文件。
diff     对两个文件夹或者存储桶比较差异。
rm       删除文件和对象。
events   管理对象通知。
watch    监听文件和对象的事件。
policy   管理访问策略。
session  为cp命令管理保存的会话。
config   管理mc配置文件。
update   检查软件更新。
version  输出版本信息。

2 Centos 7 安装mc

[root@hadoop001 MinIOClient]# wget http://dl.minio.org.cn/client/mc/release/linux-amd64/mc
[root@hadoop001 MinIOClient]# chmod +x mc 
[root@hadoop001 MinIOClient]# mv mc /usr/bin/
# 查看帮助
[root@hadoop001 MinIOClient]# mc -h

Minio入门系列【3】MinIO Client使用详解_第1张图片

添加服务器节点:

[root@hadoop001 MinIOClient]# mc config host add s3 http://192.168.58.201:9000  admin  admin123  --api s3v4
[root@hadoop001 MinIOClient]# mc config host ls
# 查看s3下的所有存储桶
[root@hadoop001 MinIOClient]# mc ls s3

可以看到当前我们添加名称为s3的节点,及这个节点下的所有存储桶:
Minio入门系列【3】MinIO Client使用详解_第2张图片

3 常用命令

3.1 ls 列出存储桶和对象

ls命令列出文件、对象和存储桶。使用–incomplete flag可列出未完整拷贝的内容。

用法:
   mc ls [FLAGS] TARGET [TARGET ...]

FLAGS:
  --help, -h                       显示帮助。
  --recursive, -r          递归。
  --incomplete, -I         列出未完整上传的对象。

示例: 列出所有s3上的存储桶。

[root@hadoop001 MinIOClient]# mc ls s3

示例: 列出所有s3上的存储桶mall4cloud下的文件。

[root@hadoop001 MinIOClient]# mc ls s3/mall4cloud

Minio入门系列【3】MinIO Client使用详解_第3张图片

3.2 mb命令 - 创建存储桶

mb命令在对象存储上创建一个新的存储桶。在文件系统,它就和mkdir -p命令是一样的。存储桶相当于文件系统中的磁盘或挂载点,不应视为文件夹。MinIO对每个​​用户创建的存储桶数量没有限制。 在Amazon S3上,每个帐户被限制为100个存储桶。

用法:
   mc mb [FLAGS] TARGET [TARGET...]

FLAGS:
  --help, -h                       显示帮助。
  --region "us-east-1"         指定存储桶的region,默认是‘us-east-1’.

示例:在s3上创建一个名叫"bucket"的存储桶。

[root@hadoop001 MinIOClient]# mc mb s3/bucket

Minio入门系列【3】MinIO Client使用详解_第4张图片

3.3 cat命令 - 合并对象

cat命令将一个文件或者对象的内容合并到另一个上。你也可以用它将对象的内容输出到stdout。

用法:
   mc cat [FLAGS] SOURCE [SOURCE...]

FLAGS:
  --help, -h                       显示帮助。

示例: 显示2a10430fc3134e2196fa06eadfe25b23文件的内容

[root@hadoop001 MinIOClient]# mc cat s3/mall4cloud/2023/09/08/2a10430fc3134e2196fa06eadfe25b23

Minio入门系列【3】MinIO Client使用详解_第5张图片

3.4 pipe命令 - Pipe到对象

pipe命令拷贝stdin里的内容到目标输出,如果没有指定目标输出,则输出到stdout。

用法:
   mc pipe [FLAGS] [TARGET]

FLAGS:
  --help, -h                    显示帮助。

示例: 将MySQL数据库dump文件输出到Amazon S3。

mysqldump -u root -p ******* accountsdb | mc pipe s3/sql-backups/backups/accountsdb-oct-9-2015.sql

3.5 cp命令 - 拷贝对象

cp命令拷贝一个或多个源文件目标输出。所有到对象存储的拷贝操作都进行了MD4SUM checkSUM校验。可以从故障点恢复中断或失败的复制操作。

用法:
   mc cp [FLAGS] SOURCE [SOURCE...] TARGET
FLAGS:
  --help, -h                       显示帮助。
  --recursive, -r          递归拷贝。

示例: 拷贝一个本地文本文件到对象存储s3/aaaa。

[root@hadoop001 MinIOClient]# mc cp starh.sh s3/aaaa

3.6 rm命令 - 删除存储桶和对象。

使用rm命令删除文件对象或者存储桶。

用法:
   mc rm [FLAGS] TARGET [TARGET ...]

FLAGS:
  --help, -h                       显示帮助。
  --recursive, -r              递归删除。
  --force              强制执行删除操作。
  --prefix             删除批配这个前缀的对象。
  --incomplete, -I      删除未完整上传的对象。
  --fake               模拟一个假的删除操作。
  --stdin              从STDIN中读对象列表。
  --older-than value               删除N天前的对象(默认是0天)。

示例1: 删除一个对象。

[root@hadoop001 MinIOClient]# mc rm s3/aaaa/starh.sh

示例2:删除一个存储桶并递归删除里面所有的内容。由于这个操作太危险了,你必须传–force参数指定强制删除。

[root@hadoop001 MinIOClient]# mc rm --recursive --force s3/qqqqq

示例3: 从mybucket里删除所有未完整上传的对象。

[root@hadoop001 MinIOClient]# mc rm  --incomplete --recursive --force s3/bucket

示例4: 删除一天前的对象。

[root@hadoop001 MinIOClient]# mc rm --force --older-than=1 s3/bucket/oldsongs

3.7 share命令 - 共享

share命令安全地授予上传或下载的权限。此访问只是临时的,与远程用户和应用程序共享也是安全的。如果你想授予永久访问权限,你可以看看mc policy命令。

生成的网址中含有编码后的访问认证信息,任何企图篡改URL的行为都会使访问无效。想了解这种机制是如何工作的,请参考Pre-Signed URL技术。

用法:
   mc share [FLAGS] COMMAND

FLAGS:
  --help, -h                       显示帮助。

COMMANDS:
   download   生成有下载权限的URL。
   upload     生成有上传权限的URL。
   list       列出先前共享的对象和文件夹。

3.8 子命令share download - 共享下载

share download命令生成不需要access key和secret key即可下载的URL,过期参数设置成最大有效期(不大于7天),过期之后权限自动回收。

用法:
   mc share download [FLAGS] TARGET [TARGET...]

FLAGS:
  --help, -h                       显示帮助。
  --recursive, -r          递归共享所有对象。
  --expire, -E "168h"          设置过期时限,NN[h|m|s]

示例: 生成一个对一个对象有4小时访问权限的URL。

[root@hadoop001 MinIOClient]# mc share download --expire 4h s3/aaaa/aa.txt

3.9 子命令share upload - 共享上传

share upload命令生成不需要access key和secret key即可上传的URL。过期参数设置成最大有效期(不大于7天),过期之后权限自动回收。 Content-type参数限制只允许上传指定类型的文件。

用法:
   mc share upload [FLAGS] TARGET [TARGET...]

FLAGS:
  --help, -h                       显示帮助。
  --recursive, -r              递归共享所有对象。
  --expire, -E "168h"          设置过期时限,NN[h|m|s].

示例: 生成一个curl命令,赋予上传到play/mybucket/myotherobject.txt的权限。

[root@hadoop001 MinIOClient]# mc share upload s3/bucket/myotherobject.txt

3.10 子命令share list - 列出之前的共享

share list列出没未过期的共享URL。

用法:
   mc share list COMMAND

COMMAND:
   upload:   列出先前共享的有上传权限的URL。
   download: 列出先前共享的有下载权限的URL。

3.11 mirror命令 - 存储桶镜像

mirror命令和rsync类似,只不过它是在文件系统和对象存储之间做同步。

用法:
   mc mirror [FLAGS] SOURCE TARGET

FLAGS:
  --help, -h                       显示帮助。
  --force              强制覆盖已经存在的目标。
  --fake               模拟一个假的操作。
  --watch, -w                      监听改变并执行镜像操作。
  --remove             删除目标上的外部的文件。

示例: 将一个本地文件夹minio镜像到https://play.min.io上的’bucket’存储桶。

[root@hadoop001 MinIOClient]# mc mirror …/minio/MinIOClient/bucket

3.12 find命令 - 查找文件和对象

find命令通过指定参数查找文件,它只列出满足条件的数据。

用法:
  mc find PATH [FLAGS]

FLAGS:
  --help, -h                       显示帮助。
  --exec value                     为每个匹配对象生成一个外部进程(请参阅FORMAT)
  --name value                     查找匹配通配符模式的对象。
  ...
  ...

示例: 持续从s3存储桶中查找所有jpeg图像,并复制到minio "minio/MinIOClient/bucket"存储桶

[root@hadoop001 MinIOClient]# mc find s3/bucket --name "*.jpg" --watch --exec "mc cp {} minio/MinIOClient/bucket"

3.13 diff命令 - 显示差异

diff命令计算两个目录之间的差异。它只列出缺少的或者大小不同的内容。

它不比较内容,所以可能的是,名称相同,大小相同但内容不同的对象没有被检测到。这样,它可以在不同站点或者大量数据的情况下快速比较。

用法:
  mc diff [FLAGS] FIRST SECOND

FLAGS:
  --help, -h                       显示帮助。

示例: 比较一个本地文件夹和一个远程对象存储服务

[root@hadoop001 minio]# mc diff localdir minio/MinIOClient/bucket

4 其他

其他命令不一一列出,请在官网详细阅读

https://minio.org.cn/docs/minio/linux/reference/minio-mc.html?ref=docs

你可能感兴趣的:(Minio,微服务,minio,微服务,分布式图片,对象存储)