MinIO的客户端MinIO Client提供了命令行的方式操作MinIO功能,它同时还支持Amazon S3的云存储服务。这篇文章继续通过示例来介绍一下其使用方式。
- MinIO服务器端安装设定
- MinIO客户端安装设定
- mc功能说明
- 功能示例
-
- mc config:设定配置
- mc ls:查询
- mc find: 查询
- mc mb:创建存储桶
- mc pipe:管道命令
- mc cat:显示文件内容或者合并文件
- mc cp: 拷贝或上传文件
- mc share:共享文件
- mc rm:删除
- 总结
详细可参看:https://liumiaocn.blog.csdn.net/article/details/109450407
MinIO客户端安装设定详细可参看:https://liumiaocn.blog.csdn.net/article/details/109455360 本文使用brew install安装的本地客户端进行演示说明。
liumiaocn:~ liumiao$ mc --version mc version RELEASE.2020-10-03T02-54-56Z liumiaocn:~ liumiao$mc功能说明
mc所提供的命令行功能说明如下所示:
命令 功能说明 ls 列出文件和文件夹。 mb 创建一个存储桶或一个文件夹。 cat 显示文件和对象内容。 pipe 将一个STDIN重定向到一个对象或者文件或者STDOUT。 share 生成用于共享的URL。 cp 拷贝文件和对象。 mirror 给存储桶和文件夹做镜像。 find 基于参数查找文件。 diff 对两个文件夹或者存储桶比较差异。 rm 删除文件和对象。 events 管理对象通知。 watch 监视文件和对象的事件。 policy 管理访问策略。 config 管理mc配置文件。 update 检查软件更新。 version 输出版本信息。 功能示例 mc config:设定配置liumiaocn:~ liumiao$ mc config host add minio http://localhost:9000 liumiao password --api s3v4 Added `minio` successfully. liumiaocn:~ liumiao$
或者使用如下命令
mc alias set minio http://localhost:9000 liumiao passwordmc ls:查询
使用mc ls 即可查询之前设定的minio下的存储桶的信息了
liumiaocn:~ liumiao$ mc ls minio [2020-11-02 18:55:05 CST] 0B defects/ [2020-11-02 18:54:26 CST] 0B releases/ [2020-11-02 18:53:28 CST] 0B requirements/ [2020-11-02 18:54:10 CST] 0B source-code/ liumiaocn:~ liumiao$
另外也可以使用递归选项查询目前的文件内容,目前只是在releases中上传了一个文件
liumiaocn:~ liumiao$ mc ls --recursive minio [2020-11-02 18:57:57 CST] 18KiB releases/2020/11/001/Release-Note-2020-11-001.docx liumiaocn:~ liumiao$mc find: 查询
当然和unix/linux的命令相同,find可以提供更加强大的查询功能,比如
liumiaocn:~ liumiao$ mc find minio/releases --name '*.docx' minio/releases/2020/11/001/Release-Note-2020-11-001.docx liumiaocn:~ liumiao$
也可以和exec组合实现更加复杂的功能,比如(此处示例文件较少,看不出效果另外组合命令的示例功能也较为简单)
liumiaocn:~ liumiao$ mc find minio/releases --name '*.docx' --exec "mc ls {}" [2020-11-02 18:57:57 CST] 18KiB Release-Note-2020-11-001.docx liumiaocn:~ liumiao$mc mb:创建存储桶
存储桶非常类似文件系统中的目录,但是官方文档建议尽量不要理解为目录,而是理解为挂载点,MinIO本身对于用户的存储桶的创建个数不具限制,但是如果使用S3的话,S3缺省对于用户的存储桶的限制是100(可以申请最大上调至1000)。创建存储桶使用mb子命令即可:
liumiaocn:~ liumiao$ mc mb minio/backups Bucket created successfully `minio/backups`. liumiaocn:~ liumiao$
此时从MinIO的页面中也可以清楚的看到相关的效果了
使用管道命令可以将标准输入的信息转化至文件或者标准输出,比如利用管道命令在刚才新建的存储桶中创建一个新的文件
liumiaocn:~ liumiao$ ls easypack/ |mc pipe minio/backups/file-list-1.info liumiaocn:~ liumiao$
然后通过mc ls命令已经可以查询到此文件的存在了
liumiaocn:~ liumiao$ mc ls --recursive minio [2020-11-03 05:39:15 CST] 152B backups/file-list-1.info [2020-11-02 18:57:57 CST] 18KiB releases/2020/11/001/Release-Note-2020-11-001.docx liumiaocn:~ liumiao$mc cat:显示文件内容或者合并文件
liumiaocn:~ liumiao$ mc cat minio/backups/file-list-1.info README.md ant chatops clamav containers docker helm jeecg k8s karma machinelearning maven mesos monitor npm openshift pics pip testmv utils yaml zipkin liumiaocn:~ liumiao$mc cp: 拷贝或上传文件
实现从本地上传文件可以使用cp子命令,比如
liumiaocn:~ liumiao$ ls -l easypack/ >local-file-list.info liumiaocn:~ liumiao$ mc cp local-file-list.info minio/backups/file-list-2.info local-file-list.info: 1.19 KiB / 1.19 KiB ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 68.49 KiB/s 0sliumiaocn:~ liumiao$
上传之后使用mc ls或者直接从MinIO的UI界面都可以看到结果
MinIO中文件共享的方式主要有上传和下载两种方式,可以临时地授予上传和下载的权限,永久的权限可以通过策略来设定。比如对于刚刚上传的文件,设定1小时的下载权限:
liumiaocn:~ liumiao$ mc share download --expire 1h minio/backups/file-list-2.info URL: http://localhost:9000/backups/file-list-2.info Expire: 1 hours 0 minutes 0 seconds Share: http://localhost:9000/backups/file-list-2.info?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=liumiao%2F20201102%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20201102T215037Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=0509d08bbbe6b37e3e9ffe46bd653586da9d14e3509283b12faf9efa98009194 liumiaocn:~ liumiao$
通过share的list子命令可以继续查询上传或者下载权限
liumiaocn:~ liumiao$ mc share list download URL: http://localhost:9000/backups/file-list-2.info Expire: 58 minutes 53 seconds Share: http://localhost:9000/backups/file-list-2.info?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=liumiao%2F20201102%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20201102T215037Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=0509d08bbbe6b37e3e9ffe46bd653586da9d14e3509283b12faf9efa98009194 liumiaocn:~ liumiao$mc rm:删除
可以通过rm子命令进行删除,比如删除如下文件
liumiaocn:~ liumiao$ mc rm minio/backups/file-list-1.info Removing `minio/backups/file-list-1.info`. liumiaocn:~ liumiao$
再次刷新页面也可以看到已经删除。
这篇文章介绍了如何利用mc客户端的功能以及通过例子演示了如何通过mc对MinIO进行常见的操作。