如何利用MinIO构建自己的私有对象存储服务

如何利用MinIO构建自己的私有对象存储服务-阿帕胡

# 前言

最近在研究如何将我越来越多的文章图片转移储存位置了,之前都是放在腾讯的对象储存上,但是超出10G免费额度后,费用越来越夸张,用不起用不起。

 

经过简单搜索,我发现了一个非常NICE的自建对象储存服务:MinIO

 

它是使用标准的S3 协议的,这样就可以兼容所有的S3基础设施,原有的S3用户也可以无缝迁移到MinIO

 

下面我就使用docker实际部署一遍,做个记录分享。

如何利用MinIO构建自己的私有对象存储服务-阿帕胡

 

# 使用docker 部署

如果你的系统没有安装docker,使用以下命令安装:

apt install docker.io

 

docker安装好了之后,就可以粘贴以下代码直接Run了,因为docker实在是太简单了。

docker run -d --name=minio --restart=always \ -v 【文件实际储存位置】:/data \ -p 9000:9000 \ -p 9001:9001 \ -e MINIO_ROOT_USER=【用户名】 \ -e MINIO_ROOT_PASSWORD=【密码】 \ -e MINIO_SERVER_URL=【API地址】 \ -e MINIO_BROWSER_REDIRECT_URL=【管理地址】 \ minio/minio:latest server /data --console-address ":9001"

将上述中文替换为你实际的参数后再运行。MINIOSERVERURL 为API 域名,通过Web 管理域名登陆创建文件分享时会调用此API 域名,如果不是很明白的话,可以使用下面这个默认配置:

docker run -d --name=minio --restart=always \ -v /data:/data \ -p 9000:9000 \ -p 9001:9001 \ -e MINIO_ROOT_USER=admin \ -e MINIO_ROOT_PASSWORD=passwd\ -e MINIO_SERVER_URL=https://share.tstrs.me \ -e MINIO_BROWSER_REDIRECT_URL=https://drive.tstrs.me \ minio/minio:latest server /data --console-address ":9001"

 

运行后,你打开服务器http://server_ip:9001 就可以访问后台,默认账户admin,密码passwd,登陆后创建Buckets,最后上传文件使用即可。

如何利用MinIO构建自己的私有对象存储服务-阿帕胡

 

# 配置权限

默认的Buckets权限为私有,这样我们就不能作为图床使用了,需要将访问政策修改为 custom,并输入以下字段,记得将【Buckets name】替换为你实际的 Buckets 名称。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": ["*" ] }, "Action": [ "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::【Buckets name】" ] }, { "Effect": "Allow", "Principal": { "AWS": ["*" ] }, "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::【Buckets name】/*" ] } ]}

 

THE END