1、背景
在实际的软件系统开发过程中,经常避免不了需要用到文件存储服务。 例如,对于小型的网站系统,通常会将文件存储服务和网站系统部署在一台服务器中,以实现低成本的资源投入,如果访问量不大,基本上没什么问题。当访问量逐渐升高,此时网站的文件资源读取越来越频繁,单台服务器可能难以承载较大的请求量,这个时候网站可能会出现打不开,甚至系统异常等问题。 当出现这个场景,很容易第一时间想到将文件采用云存储服务来解决。所谓云存储服务,简单的说,就是将访问很频繁的文件资源服务,由本地改成云厂商提供的文件存储服务,比如阿里云 OSS、七牛云、腾讯云、百度云等等,迁移之后,网站的访问压力会得到极大的释放,服务也会变得更加稳定。但是,这些云存储服务大部分都是收费的,以阿里云为例,数据存储通常按照 0.12 元/GB/月的标准来收费,虽然便宜,但是日积月累下来也是一笔不小的开支啊。 为了节省成本,很多项目团队会自己搭建一套云存储服务,比如采用开源的 fastDFS 工具来作为文件存储服务器,虽然能性能不错,但是软件安装环境非常复杂,最重要的是没有一个完整的技术文档,大部分都是某某公司或者某某网友自己总结的文档,每次维护起来很是麻烦。 直到出现了 MinIO,云存储服务工具又多了一个新的可选项。 MinIO 是一款号称世界上速度最快的对象存储服务,专为大规模数据存储和分析而设计。它支持在各种环境中部署,包括物理服务器、虚拟机、容器等,最关键的是它的技术文档非常完善,非常容易上手;同时,对个人用户是完全开源免费的。 一起了解一下如何利用 MinIO 来搭建一套属于自己的云存储服务。2、快速安装
minio 工具的安装非常简单,如果本机安装了 Docker 容器,可以通过 Docker 命令一键实现安装操作。 以 windows 操作系统为例,安装命令如下。相关参数解读:
docker run \
-p 9000:9000 \
-p 9001:9001 \
--name minio1 \
-v D:\minio\data:/data \
-e "MINIO_ROOT_USER=ROOTUSER" \
-e "MINIO_ROOT_PASSWORD=CHANGEME123" \
quay.io/minio/minio server /data --console-address ":9001"
<font style="color:rgb(1, 1, 1);">docker run</font>
:表示启动运行容器<font style="color:rgb(1, 1, 1);">-p</font>
:表示为容器绑定一个本地的端口<font style="color:rgb(1, 1, 1);">-name</font>
:表示为容器创建一个本地的名字<font style="color:rgb(1, 1, 1);">-v</font>
:表示将文件路径设置为容器使用的持久卷位置。当 MinIO 将数据写入<font style="color:rgb(1, 1, 1);">/data</font>
时,该数据会镜像到本地路径<font style="color:rgb(1, 1, 1);">~/minio/data</font>
,使其能够在容器重新启动时保持持久化。您可以设置任何具有读取、写入和删除权限的文件路径来使用。<font style="color:rgb(1, 1, 1);">-e</font>
:表示设置登陆控制台的用户名和密码。其中控制台的访问地址为<font style="color:rgb(1, 1, 1);">http://本机ip:9001</font>
,api 的访问地址为<font style="color:rgb(1, 1, 1);">http://本机ip:9000</font>
。
https://minio.org.cn/docs/minio/container/index.html
服务启动成功之后,在浏览器中访问<font style="color:rgb(239, 112, 96);">http://127.0.0.1:9001</font>
地址,会看到类似于如下界面。
3、使用介绍
登陆成功之后,会看到类似于如下的主界面。3.1、创建存储桶
所有的文件必须要存储到桶中,因此需要先创建一个存储桶。<font style="color:rgb(239, 112, 96);">Buckets</font>
菜单,就可以看到相关的存储桶配置信息。
3.2、上传和下载文件
存储桶创建完成之后,就可以上传文件了。 点击<font style="color:rgb(239, 112, 96);">Object Browser</font>
菜单,可以看到刚刚创建的存储桶<font style="color:rgb(239, 112, 96);">public-bucket</font>
,点击进入,上传想要存储的文件了。