一、minio初介
恰巧公司有个闲置的台式机,加上年末时间还算充裕,嗯~,搞起!
二、内网环境
三、docker搭建minio服务端
docker run -d -p 9000:9000 --name minio -v /home/graham/docker/minio/data:/data -e "MINIO_ROOT_USER=nobug" -e "MINIO_ROOT_PASSWORD=5eR40IxkNkIVbH5P" --restart=unless-stopped minio/minio server /data
- 管理员账号:
MINIO_ROOT_USER
nobug - 管理员密码:
MINIO_ROOT_PASSWORD
5eR40IxkNkIVbH5P - 存储的文件路径:容器
/data
映射本机的/home/graham/docker/minio/data
目录
访问 http://内网ip:9000 使用设置的账号密码登录即可。如果是一个人用的话,做到这一步就可以结束了。
但是
在公司用还是稍微加一下下访问限制好一点点
四、minio中介
minio的服务端类似redis-server,想要进行具体的用户添加、权限设置等等,还得装个redis-cli,在minio中指的就是mc
客户端。
五、minio客户端-mc
http://docs.minio.org.cn/docs/master/minio-client-quickstart-guide
1.mc客户端安装
cd /usr/local/bin && sudo wget http://dl.minio.org.cn/client/mc/release/linux-amd64/mc
sudo chmod +x mc
客官看到了这里,如果没有再继续看下去的动力,建议直接跳到第八章,进入实操,接下来都是干巴巴的文字说明 ---》跳
2.mc命令说明
就说几个用得到的,更多高级使用去官网看:
http://docs.minio.org.cn/docs/master/minio-client-quickstart-guide
http://docs.minio.org.cn/docs/master/minio-client-complete-guide
http://docs.minio.org.cn/docs/master/minio-admin-complete-guide
六、minio末介
这里主要说一说minio的权限策略,跟博主使用过的阿里云权限控制很像,基本可以说是一个模子印出来的,在它官网还有接入的sdk,那这完全可以申请商业用途弄个阿里云的oss出来。
可能这也是选择minio的原因,后续的操作性很强,虽然现在还没必要,硬盘也贵。
七、minio的访问策略
默认提供有diagnostics
、readonly
、readwrite
、writeonly
这四种访问策略给你(使用mc admin policy list <ALIAS>
命令看得到),这肯定是不够精准的。
1.编写策略文件
设置用户只能上传、下载、罗列这个叫public的bucket(把bucket理解成目录就行,一个叫public的目录)
# 得在config连接服务端之后再执行下面这些命令
cd ~/.mc
vim publicbucket.json
// publicbucket.json
{
"Version": "2021-01-16",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetObject",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::public/*"
]
}
]
}
2.生成新的访问策略
命令格式:mc admin policy add <ALIAS> 新的策略名称 策略文件
3.访问策略
Effect(效果)
Action(操作)
- s3:GetObject
- s3:ListBucket
- s3:PutObject
- s3:GetBucketLocation
- s3:DeleteObject
- s3:AbortMultipartUpload
- s3:ListBucketMultipartUploads
- s3:ListMultipartUploadParts
Resource(资源)
- arn:aws:s3:::bucketName//
八、Minio客户端实操!!!!!!!
1.连接服务端
mc config host add lemon http://内网ip:9000 nobug 5eR40IxkNkIVbH5P
mc: Configuration written to `/home/graham/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/home/graham/.mc/share`.
mc: Initialized share uploads `/home/graham/.mc/share/uploads.json` file.
mc: Initialized share downloads `/home/graham/.mc/share/downloads.json` file.
Added `lemon` successfully.
从此这个存储服务的服务端被称之为lemon
2.测试连接
mc admin info lemon
● 内网ip:9000
Uptime: 48 minutes
Version: 2021-01-16T02:19:44Z
Network: 1/1 OK
1.5 MiB Used, 7 Buckets, 1 Object
3.添加公共访问用户-public
mc admin user add lemon public fKlAtdMPtmLkg7X2
4.添加一个名为public的bucket
mc mb lemon/public
5.创建一个公共访问策略
5.1写策略文件:
cd ~/.mc
vim publicbucket.json
{
"Version": "2021-01-16",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetObject",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::public/*"
]
}
]
}
- 5.2生成策略:
mc admin policy add lemon public_policy ~/.mc/publicbucket.json
此时使用mc admin policy list lemon
就会看到我们新增的public_policy
6.给public用户添加创建的公共访问策略
mc admin policy set lemon public_policy user=public
min na可以尝试新建个访问组,通过把用户添加到组的形式来限制访问。
ok,用public
fKlAtdMPtmLkg7X2
登录http://内网ip:9000
就只能看到public这一个bucket,在其中只能点击展开文件,上传文件和下载文件,删除和修改相关的操作就都无效了。
完(不方便截图)
ref: