我不是一个资深高手,只想描述普通人在项目中真正常见的问题,以及我的一些经验!
项目中,我们经常会遇到上传附件,预览图片,播放视频等需求,这个时候,作为一个实际开发场景,就需要我们搭建文件服务器了,当然技术发展到现在,给到我们的选择已经变得很多了,比如很原始的时候基于nginx 的服务器硬盘直接搭建,搭建ftp服务,搭建minio购买云服务等。
这边我就不一一列举,我只讲实操,如果是是开发环境,或者是中小型项目,基于目前的实际开发项目经验,如果不愿意购买三方的云存储,比如某里某腾的OSS存储,那么一定选择minio 作为搭建企业级文件服务器的首选!
minio是什么
我去百度了一下概念,放在这边
MinIO是一个高性能、分布式的对象存储系统,基于Apache License v2.0开源协议。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。一个对象文件可以是任意大小,从几kb到最大5T不等。从定义不难看出,minio的特点,开源免费 性能高。
官网地址:min.io/
如何搭建minio
由于个人有时候怕不停安装环境比较麻烦,所以一直有些shell脚本的习惯,我直接把个人shell 脚本分享一下,虽然是很简单的脚本,没有做错误兼容,但是对于初学者还是比较友善的。
#!/bin/bash
echo "step one upload minio file ......."
cd /root/source && wget dl.min.io/server/mini…
echo "step two install minio ......."
cp /root/source/minio /root/common/minio && cd /root/common/minio && chmod +x minio
MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=你的密码 ./minio server /root/common/minio/data --address :9000 --console-address :9090
如果纯粹想要搭建一个minio 做个测试,兄弟们直接把你的密码处进行替换,然后将如上内容拷贝到文本中保存,并将文件命名为minio_install.sh,直接在系统中 执行 sh ./minio_install.sh 即可
对于参数的解释,我一并汇总如下
MINIO_ROOT_USER:用于可视化操作登录时管理员的账号。[可选]
MINIO_ROOT_PASSWORD:用于可视化操作登录时管理员的密码。[可选]
minio server : 服务启动。[必选]
dataPath: 文件存储路径,该路径可以为节点的网址/真实的路径。[必填]
--address :: 文件服务的端口号,默认为9000。[可选]
--console-address ::可视化界面的端口号,默认为随机。[可选]
执行命令启动成功之后,浏览器访问http://localhost:9090就可以访问minio的图形化界面了,这边的9090 是命令中指定的9090端口,我截取了之前搭建过的首页截图,默认账户密码,看自己的设定,就是脚本中你预设的值
如何使用minio
登陆进去之后,我简单讲一下页面的简单操作,至于程序层面后续的连接,等后续如果有时间,将创建一个我的springboot系列来讲一下如何通过程序对接minio实现使用。
这边不废话,做一些进入之后的基础操作,截图加备注,简单描述
1.创建桶(Bucket)
至于名字自己定义
2.针对桶创建桶基础规则,以及账户
创建账户
创建用户,按照权限放出对应用户
给用户创建access key 用于后期代码对接
设置后台启动
1.创建minio.service文件
cd /etc/systemd/system/ && touch minio.service
2.vim minio.service 并将如下内容直接粘贴,注意自己替换账户密码,以及StandardOutput对应的实际地址
[Unit]
Description=Minio Service
[Service]
Environment="MINIO_ROOT_USER=admin"
Environment="MINIO_ROOT_PASSWORD=123456789"
ExecStart=/root/minio server /mnt/data --console-address ":9090"
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
StandardOutput=/mnt/minio/logs/minio.log
PrivateTmp=true
[Install]
WantedBy=multi-user.target
3.执行如下命令完成后台动
systemctl daemon-reload && systemctl enable minio.service && systemctl start minio.service && systemctl status minio.service
如果出现如下内容,开始测试你的minio吧