MinIO Client完全指南
config host
命令提供了一个方便管理 ~/.mc/config.json
配置文件中的主机信息的方式,你也可以用文本编辑器手动修改这个配置文件
用法:
mc config host COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...]
COMMANDS:
add, a 添加一个新的主机到配置文件。
remove, rm 从配置文件中删除一个主机。
list, ls 列出配置文件中的主机。
FLAGS:
--help, -h 显示帮助。
示例
[root@localhost bin]# mc config host list
gcs
URL : https://storage.googleapis.com
AccessKey : YOUR-ACCESS-KEY-HERE
SecretKey : YOUR-SECRET-KEY-HERE
API : S3v2
Lookup : dns
local
URL : http://localhost:9000
AccessKey :
SecretKey :
API :
Lookup : auto
miniotest
URL : http://192.168.133.122:9000
AccessKey : minioadmin
SecretKey : minioadmin
API : s3v4
Lookup : auto
myminio
URL : http://127.0.0.1
AccessKey : minioadmin
SecretKey : minioadmin
API : s3v4
Lookup : auto
play
URL : https://play.min.io
AccessKey : Q3AM3UQ867SPQQA43P2F
SecretKey : zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG
API : S3v4
Lookup : auto
s3
URL : https://s3.amazonaws.com
AccessKey : YOUR-ACCESS-KEY-HERE
SecretKey : YOUR-SECRET-KEY-HERE
API : S3v4
Lookup : dns
[root@k8s-master minio]# mc config host add miniodev130 http://10.8.208.130:9000 minioadmin minioadmin
Added `miniodev130` successfully.
watch
命令提供了一种方便监听对象存储和文件系统上不同类型事件的方式
用法:
mc watch [FLAGS] PATH
FLAGS:
--events value 过滤不同类型的事件,默认是所有类型的事件 (默认: "put,delete,get")
--prefix value 基于前缀过滤事件。
--suffix value 基于后缀过滤事件。
--recursive 递归方式监听事件。
--help, -h 显示帮助。
示例:监听对象存储的所有事件
[root@localhost bin]# mc watch miniotest/images
[2020-09-16T06:59:50.002Z] 309 KiB ObjectCreated http://192.168.133.122:9000/images/img_beveragerobot.png
[2020-09-16T07:04:10.374Z] ObjectRemoved http://192.168.133.122:9000/images/img_beveragerobot.png
管理匿名访问存储桶和其内部内容的策略
用法:
mc policy [FLAGS] PERMISSION TARGET
mc policy [FLAGS] TARGET
mc policy list [FLAGS] TARGET
PERMISSION:
Allowed policies are: [none, download, upload, public].
FLAGS:
--help, -h 显示帮助。
示例:显示当前桶的策略
[root@localhost bin]# mc policy list miniotest/images
images/* => readonly
find
命令通过指定参数查找文件,它只列出满足条件的数据
用法:
mc find PATH [FLAGS]
FLAGS:
--help, -h 显示帮助。
--exec value 为每个匹配对象生成一个外部进程(请参阅FORMAT)
--name value 查找匹配通配符模式的对象。
...
...
示例:查找后缀为 .jpg
的文件
[root@localhost bin]# mc find miniotest/images --name "*.jpg"
miniotest/images/123.jpg
miniotest/images/微信图片_20200814102816.jpg
cp
命令拷贝一个或多个源文件目标输出。所有到对象存储的拷贝操作都进行了MD4SUM checkSUM校验。可以从故障点恢复中断或失败的复制操作。
用法:
mc cp [FLAGS] SOURCE [SOURCE...] TARGET
FLAGS:
--help, -h 显示帮助。
--recursive, -r 递归拷贝。
示例:MinIO 中文件夹中的文件转移 (递归复制需带上参数 --recursive
)
[root@k8s-master ~]# mc cp --recursive miniodev/app/service/ miniodev/image/service/
...9001/app/service/img_water.png: 3.58 MiB / 3.58 MiB ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 1.28 MiB/s 2s
mirror
命令和rsync
类似,只不过它是在文件系统和对象存储之间做同步。
用法:
mc mirror [FLAGS] SOURCE TARGET
FLAGS:
--help, -h 显示帮助。
--force 强制覆盖已经存在的目标。
--fake 模拟一个假的操作。
--watch, -w 监听改变并执行镜像操作。
--remove 删除目标上的外部的文件。
示例
[root@k8s-master minio]# mc mirror miniodev/image miniodev130/image
.../image/specialdish/img_food03.png: 322.11 MiB / 322.11 MiB ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 15.79 MiB/s 20s
share 命令安全地授予上传或下载的权限。此访问只是临时的,与远程用户和应用程序共享也是安全的。如果你想授予永久访问权限,你可以看看mc policy
命令。
生成的网址中含有编码后的访问认证信息,任何企图篡改URL的行为都会使访问无效。想了解这种机制是如何工作的,请参考Pre-Signed URL技术。
用法:
mc share [FLAGS] COMMAND
FLAGS:
--help, -h 显示帮助。
COMMANDS:
download 生成有下载权限的URL。
upload 生成有上传权限的URL。
list 列出先前共享的对象和文件夹。
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。
mc share download --expire 4h play/mybucket/myobject.txt
URL: https://play.min.io/mybucket/myobject.txt
Expire: 0 days 4 hours 0 minutes 0 seconds
Share: https://play.min.io/mybucket/myobject.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=Q3AM3UQ867SPQQA43P2F%2F20160408%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20160408T182008Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=1527fc8f21a3a7e39ce3c456907a10b389125047adc552bcd86630b9d459b634
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
的权限。
Copymc share upload play/mybucket/myotherobject.txt
URL: https://play.min.io/mybucket/myotherobject.txt
Expire: 7 days 0 hours 0 minutes 0 seconds
Share: curl https://play.min.io/mybucket -F x-amz-date=20160408T182356Z -F x-amz-signature=de343934bd0ba38bda0903813b5738f23dde67b4065ea2ec2e4e52f6389e51e1 -F buck
share list
- 列出之前的共享share list
列出没未过期的共享URL。
用法:
mc share list COMMAND
COMMAND:
upload: 列出先前共享的有上传权限的URL。
download: 列出先前共享的有下载权限的URL。
[root@localhost bin]# mc admin --json info miniotest
{
"status": "success",
"info": {
"mode": "online",
"sqsARN": [
"arn:minio:sqs::_:redis"
],
"deploymentID": "073da1f1-6e35-4f8a-a6b1-48556d0b2fb9",
"buckets": {
"count": 2
},
"objects": {
"count": 1
},
"usage": {
"size": 4266223
},
"services": {
"vault": {
"status": "disabled"
},
"ldap": {},
"notifications": [
{
"redis": [
{
"_": {
"status": "Online"
}
}
]
}
]
},
"backend": {
"backendType": "FS"
},
"servers": [
{
"state": "ok",
"endpoint": "192.168.133.122:9000",
"uptime": 3891,
"version": "2020-07-18T18:48:16Z",
"commitID": "17747db93f9e2ef2450945feb082d0988dbd0a2f",
"network": {
"192.168.133.122:9000": "online"
}
}
]
}
}