MINIO
MINIO 8.0:对象服务存储器
下载:将minio下载,然后添加可执行权限即可
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
部署:
先设置好用户名和密码,如果不指定,会自动给出一个。部署时记得指定控制台端口:":9001"、服务器端口:":9000",不指定会系统给出
单机:
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=zcy@2021
nohup /usr/local/minio/minio server --console-address ":5001" --address=":5000" /data/minio >/usr/local/minio/w.log 2>&1 &
单机纠删码:
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=zcy@2021
nohup /usr/local/minio/minio server --console-address ":5001" --address=":5000" /data/minio1 /data/minio2 /data/minio3 /data/minio4 >/usr/local/minio/w.log 2>&1 &
分布式部署(多机纠删码):
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=zcy@2021
nohup /usr/local/minio/minio server --console-address ":5001" --address=":5000" http://134.160.180.93/data/minio93 http://134.160.180.94/data/minio94 http://134.160.180.95/data/minio95 http://134.160.180.96/data/minio96 >/usr/local/minio/w.log 2>&1 &
纠删码部署(至少需要4块磁盘):
会根据每台机器的 N 块磁盘,将磁盘分为 N/2 到 2 块奇偶校验块(E),剩下的作为数据块存储数据(M),E+M=N;
只要不损坏 E+1 块的磁盘(奇偶校验块+数据块),MINIO 对象存储系统就能根据完好的磁盘自动恢复数据(奇偶校验块或者数据块)
如果损失了 (E+1) 块磁盘(奇偶校验块+数据块)就无法进行写数据,只能进行读数据
docker部署:
官网地址:https://docs.min.io/docs/minio-quickstart-guide.html
MINIO policy策略写法:
policy策略配置写法为 json 格式,包含两部分 Version 版本和 Statement 声明两部分组成。
"Version": "2012-10-17" 固定写法
"Statement": [{},{}],{}组成包含4部分:
"Effect": "Allow/Deny" :效果:允许/不允许
"Principal": {"aws":["*"]} :开放的角色:所有用户和账号
"Action": ["s3:GetBucketLocation"] 开放的操作:获取桶信息
"Resource": ["arn:aws:s3:::test"] 开放的资源:test桶
支持的 Action:
针对桶操作 Bucjet:
s3:GetBucketLocation
s3:ListBucket
s3:ListBucketMultipartUploads
s3:GetObject
针对对象操作 Object:
s3:PutObject
s3:DeleteObject
s3:AbortMultipartUpload
s3:ListMultipartUploadParts
例子:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"*"
]
},
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket",
"s3:ListBucketMultipartUploads"
],
"Resource": [
"arn:aws:s3:::test"
]
},
{
"Effect": "Allow",
"Principal": {
"AWS": [
"*"
]
},
"Action": [
"s3:DeleteObject",
"s3:GetObject",
"s3:ListMultipartUploadParts",
"s3:PutObject",
"s3:AbortMultipartUpload"
],
"Resource": [
"arn:aws:s3:::test/*"
]
}
]
}
注意桶和桶下面文件的区别,所以一般一个 Policy 声明里面有两段
minio 使用 mc 设置直接路径访问下载策略(其实就是把GetObject权限给全部开放了):
安装:wget https://dl.min.io/client/mc/release/linux-amd64/mc
添加为服务:chmod +x mc
查看mc服务配置:mc config host ls
添加minio服务:mc config host add minio-server http://192.168.3.14:9000 admin 12345678
设置桶下载策略:mc policy set download minio-server/bucketname/
查看桶策略:mc policy get minio-server/bucketname/
就是如下policy json格式
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"*"
]
},
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::yourbucketname"
]
},
{
"Effect": "Allow",
"Principal": {
"AWS": [
"*"
]
},
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::yourbucketname/*"
]
}
]
}
将桶策略修改为public也可直接路径访问:
需要注意的是,访问路径拼写为:ip + api端口(不是控制台端口) + 桶名称 + 文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)