minio客户端mc的使用

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

[TOC]

mc的安装与配置

curl -sL http://iso.sqlfans.cn/linux/mc.2023-08-15 -o /usr/bin/mc
chmod +x /usr/bin/mc

mc用法

连接minio服务器

  • 连接minio服务器,注意使用api端口9000,而不是Console端口9100
mc config host remove myminio
mc config host add myminio http://10.30.3.231:9000 minioadmin minioadmin --api s3v4
mc config host list

管理bucket及object

  • mb创建bucket或目录、ls查看bucket、cp上传或下载文件、mv移动文件、rm删除文件、rb删除bucket
mc config host remove myminio
mc config host add myminio http://10.30.3.231:9000 minioadmin minioadmin --api s3v4

mc mb myminio/bucket111                                     #.创建bucket,示例 bucket111
mc ls myminio                                               #.列出所有的bucket

mc cp /etc/hosts myminio/bucket111/                         #.上传本地文件到bucket
mc cp /etc/sysconfig myminio/bucket111 --recursive          #.上传本地目录到bucket
mc cp myminio/bucket111/hosts /tmp/                         #.下载bucket中的文件到本地目录
mc cat myminio/bucket111/hosts                              #.查看bucker中的文件内容

mc mb myminio/bucket111/222                                 #.在bucket中创建目录
mc mv myminio/bucket111/hosts myminio/bucket111/222/        #.移动文件

mc rm myminio/bucket111/222/hosts                           #.删除bucket中的文件
mc rm myminio/bucket111 --recursive --force                 #.删除bucket下所有的目录和文件
mc rb myminio/bucket111 --force                             #.删除bucket

设置访问权限

  • 利用 mc anonymous 设置访问权限策略
mc config host remove myminio
mc config host add myminio http://10.30.3.231:9000 minioadmin minioadmin --api s3v4

mc mb myminio/bucket222                                 #.创建bucket用于测试,默认访问权限为 private
mc anonymous set download myminio/bucket222             #.设置指定bucket的访问权限为 readonly,即永久下载
mc anonymous set upload myminio/bucket222               #.设置指定bucket的访问权限为 writeonly
mc anonymous set public myminio/bucket222               #.设置指定bucket的访问权限为 readwrite
mc anonymous get myminio/bucket222                      #.查看指定bucket的访问权限

mc admin policy list myminio/bucket222                  #.查看指定bucket可用的策略列表
mc anonymous list myminio/bucket222                     #.列出指定bucket的策略
mc rb myminio/bucket222                                 #.删除这个测试的bucket

管理用户和角色

  • 利用 mc admin 管理用户和角色
mc admin user add myminio myuser Admin_147          #.添加用户,示例 myuser
mc admin user disable myminio myuser                #.禁用特定的用户
mc admin user enable myminio myuser                 #.启用特定的用户
mc admin user ls myminio                            #.查看用户,包含状态信息
mc admin user info myminio myuser                   #.查看特定用户的详细信息

mc admin group add myminio mygroup myuser           #.添加用户组,示例 mygroup,并将 myuser 添加到 mygoup
mc admin group disable myminio mygroup              #.禁用特定的用户组
mc admin group enable myminio mygroup               #.启用特定的用户组
mc admin group ls myminio                           #.列出用户组
mc admin group info myminio mygroup                 #.查看特定用户组的详细信息

mc admin user rm myminio myuser                     #.删除特定的用户
mc admin group rm myminio mygroup                   #.删除特定的用户组,先删用户再删用户组,不可直接删除非空的用户组

mc admin policy --help                              #.配置用户或用户组的策略

其他常用操作

mc version              #.输出版本信息
mc update               #.更新mc到最新版本
mc tree                 #.以树型结构列出buckets and objects
mc diff                 #.对两个文件夹或者存储桶比较差异
mc share                #.生成用于共享的URL

特定场景需求

将iso目录设置永久有效

  • 需求:通过 mc share 分享的链接有效期最多7天,如何设置文件访问链接永久有效呢
  • 解决:通过 mc 设置对应 bucket 的访问权限为 download
mc config host remove myminio
mc config host add myminio http://10.30.3.231:9000 minioadmin minioadmin --api s3v4

#.通过 mc share 分享的链接最多支持 7 days
mc mb myminio/bucket333
mc mb myminio/bucket333/iso
mc cp /etc/hosts myminio/bucket333/iso/
mc share download --recursive --expire=120h myminio/bucket333/iso

#.设置对应bucket的访问权限为 download 即永久有效
mc anonymous set download myminio/bucket333/iso
mc anonymous get myminio/bucket333/iso

利用mc配置多用户权限策略

  • 场景1:给用户应用全局策略,比如 readwrite
#.定义alias,比如 myminio
mc alias set myminio http://10.30.4.150:9000 minioadmin minioadmin --api s3v4
mc alias list

#.新增存储桶,比如 bucket123
mc mb -p myminio/bucket123

#.新增用户,比如 user123
mc admin user add myminio user123 password123
mc admin user list myminio

#.新增用户组,比如 group123
mc admin group add myminio group123 user123
mc admin group list myminio

#.给用户应用全局策略,RELEASE.2023-05-27之后请使用attach附加策略
# mc admin policy set myminio readwrite user=user123
mc admin policy attach myminio readwrite --user user123
  • 场景2:给用户应用自定义策略,比如 getonly
#.新增存储桶,比如 bucket456
mc mb -p myminio/bucket456

#.创建应用自定义策略文件,比如仅针对 bucket456 这个桶
cat > /opt/getonly.json << EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::bucket456/*"
      ],
      "Sid": ""
    }
  ]
}
EOF

#.使用getonly.json策略文件,创建新的策略
mc admin policy create myminio getonly /opt/getonly.json

#.为用户应用自定义策略
mc admin policy attach myminio getonly --user user123
Copyright © www.sqlfans.cn 2023 All Right Reserved更新时间: 2024-06-12 11:44:36

results matching ""

    No results matching ""