Minio简介

Minio是Apache License v2.0下发布的对象存储服务器。它与Amazon S3云存储服务兼容。它最适合存储非结构化数据,如照片,视频,日志文件,备份和容器/ VM映像。对象的大小可以从几KB到最大5TB
Minio服务器足够轻,可以与应用程序堆栈捆绑在一起,类似于NodeJS,Redis和MySQL。
https://docs.minio.io/

Minio安装使用

二进制安装

wget https://dl.minio.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /data
注意启动时控制台会显示的 appkey secretkey是默认登录账户,密码

image.png

docker安装

docker pull minio/minio
docker run -p 9000:9000 minio/minio server /data

使用

浏览器输入: http://ip:9000
例如:http://10.0.102.201:9000 http://172.17.42.1:9000 http://127.0.0.1:9000

AccessKey: minioadmin
SecretKey: minioadmin

image.png

image.png

Minio常用命令

客户端操作命令

NAME:
  mc - MinIO Client for cloud storage and filesystems.

USAGE:
  mc [FLAGS] COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...]

COMMANDS:

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

客户端管理命令

NAME:
  mc admin - manage MinIO servers

USAGE:
  mc admin COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...]

COMMANDS:

service     服务重启并停止所有MinIO服务器
update      更新更新所有MinIO服务器
info        信息显示MinIO服务器信息
user        用户管理用户
group       小组管理小组
policy      MinIO服务器中定义的策略管理策略
config      配置管理MinIO服务器配置
heal        修复MinIO服务器上的磁盘,存储桶和对象
profile     概要文件生成概要文件数据以进行调试
top         顶部提供MinIO的顶部统计信息
trace       跟踪显示MinIO服务器的http跟踪
console     控制台显示MinIO服务器的控制台日志
prometheus  Prometheus管理Prometheus配置
kms         kms执行KMS管理操作

Minio使用案例

新建一个bucket和用户,并给用户进行授权访问

  1. 用户只能访问自己的bucket
  2. 用户只能上传和下载,列出自己的文件

一、查看minio基本情况

客服端中添加minio server进行管理

[root@minio ~]$ mc config host add minio http://ip或域名端口 minioadmin minioadmin

列出所有buckets

[root@minio ~]$ mc ls minio
[2021-03-19 16:45:13 CST]     0B cnb-uat/
[2021-03-19 16:45:21 CST]     0B enp-uat/

列出minio现有的用户

[root@minio ~]$ mc admin user list minio
enabled    cnb                   cnbpolicy
enabled    enp

列出minio现有的策略

[root@minio ~]$ mc admin policy list minio
diagnostics
readonly
readwrite
writeonly
cnbpolicy
consoleAdmin

列出minio桶的策略权限

[root@minio ~]$ mc policy list minio/cnb-uat
cnb-uat/cnb-uat* => readwrite
cnb-uat/* => readonly

二、添加bucket

[root@minio ~]$ mc mb minio/iim-uat
Bucket created successfully `minio/iim-uat`.

三、添加策略

1.添加自定义策略文件

cat > iim.json << EOF
{
 "Version": "2012-10-17",
 "Statement": [
  {
   "Effect": "Allow",
   "Action": [
    "s3:ListAllMyBuckets",
    "s3:ListBucket",
    "s3:GetBucketLocation",
    "s3:GetObject",
    "s3:PutObject"
   ],
   "Resource": [
    "arn:aws:s3:::iim-uat/*"
   ]
  }
 ]
}
EOF

2.添加自定义策略到系统

[root@minio ~]$ mc admin policy add minio iimpolicy iim.json

三、用户管理

1.添加用户

[root@minio ~]$ mc admin user add minio iim iim123456
Added user `iim` successfully.

2.给用户设置策略

[root@minio ~]$ mc admin policy set minio iimpolicy user=iim

3.设置匿名权限

[root@minio ~]$ mc policy set download minio/iim-uat
Access permission for `minio/iim-uat` is set to `download`

四、客户端使用

客户端通过命令行操作bucket

[root@minio ~]$ mc config host add minio http://ip或域名端口 iim iim123456
[root@minio ~]$ mc ls minio
[2021-03-19 16:45:13 CST]     0B iim-uat/

zhoutao
189 声望543 粉丝

编程是一门艺术,学习是一种态度