
使用minio搭建自己的文件存储服务(新版和旧版)
前言
在一个实际的项目中,文件存储是必不可少的。目前市场上有许多提供对象存储服务的厂商,比如七牛云、阿里云等等。但是这些存储服务往往是收费或者有存储空间限制的,或者有一些小伙伴会直接把上传的文件存储在服务器本地,虽然这种方式可行,但是还是有很多局限性,比如我们上传的文件不好管理,文件预览不好操作以及如果有多个服务器等等。
今天就介绍使用minio搭建自己的文件存储服务器,因为minio新版和旧版有一定的区别,所以今天介绍minio新版和旧版的搭建方式,大家可以根据自己的需求选择。
1.准备工作
服务器一台
安装了docker
SSl证书(如需要开启https访问)
2.旧版minio安装
(1)docker安装指定版本minio
运行命令:
docker pull minio/minio:RELEASE.2021-06-17T00-10-46Z
(2)使用docker运行minio
运行命令:
docker run -p 9000:9000 --name minio -di --restart=always \
-e "MINIO_ROOT_USER=minio" \
-e "MINIO_ROOT_PASSWORD=minio123456" \
-v /usr/local/minio/data:/data \
-v /usr/local/minio/config:/root/.minio \
minio/minio:RELEASE.2021-06-17T00-10-46Z server /data
相关指令解释:
MINIO_ROOT_USER:设置用户名
MINIO_ROOT_PASSWORD:设置密码
/usr/local/minio/data:文件的存储地址
/usr/local/minio/config:minio的相关配置文件
【注意】这里使用的9000端口,需要在服务器的安全组中添加9000端口,不然无法访问。
运行成功后出现以下界面:
查看docker运行日志,运行命令:
docker logs 运行结果id
如果出现以上界面则代表minio运行成功,因为我使用了ssl证书,所以是https。
(3)浏览器访问
在浏览器输入地址:http://服务器ip:9000,出现登录页面即代表成功:
使用刚刚设置的登录密码进行登录,登录成功后页面如下:
这里我新建了一个名称navigation的桶,你可以简单理解问存数据的地方。
(4)上传文件到minio文件服务
第一种:
直接在浏览器上上传,这种方式很简单:
这里我上传了一张图片,但是这个时候我们还不能直接通过输入如下地址访问图片:
http://服务器ip:9000/桶名/文件名
我们需要设置访问规则:
点击Edit policy,更改至如下:
这个时候我们就可以这样访问图片了:
http://服务器ip:9000/navigation/1.jpg
(5)开启https访问
目前很多网站都开启了https,为了安全和统一原则,我们的minio服务也开启https访问。
1.获取SSL证书
得到如下两个文件:
public.crt
private.key
【注意】如果证书的名字或者后缀不是上面两个,可直接更改,比如pem后缀可直接更改为crt后缀。
2.将证书上传至服务器minio目录下
具体目录如下:
/usr/local/minio/config/certs
具体路径与刚刚运行minio有关,上传后的文件夹如下:
3.重启docker容器
查看docker运行的容器
docker ps
重启命令:
docker restart 容器id
查看日志:
docker logs 运行结果id
出现如下界面则代表我们可以使用https访问了:
3.新版minio安装
新版本的minio安装与旧版的差别不大,主要是运行命令和界面有一些差别:
(1)docker安装最新版minio
docker pull minio/minio
(2)使用docker运行minio
docker run --name minio \
-p 9000:9000 \
-p 9090:9090\
-d --restart=always \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=admin123" \
-v /home/minio/data:/data \
-v /home/minio/config:/root/.minio \
minio/minio server /data \
--console-address '0.0.0.0:9090'
【注意】新版本的运行命令和旧版本的运行命令有一点不一样。
其他步骤基本与安装旧版本的一致了,只是操作界面可能不一样了:
新版本的界面:
最后补充:新版本开启https访问可能有无法登录的坑,目前笔者还没有找到一个好的解决办法,解决的了小伙伴请在评论区解答一下,十分感谢。