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:

针对桶操作 Bucjets3:GetBucketLocation
	s3:ListBucket
	s3:ListBucketMultipartUploads
	s3:GetObject
针对对象操作 Objects3: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端口(不是控制台端口) + 桶名称 + 文件

posted @   星星小马  阅读(453)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示