使用MinIO搭建轻量化的对象存储 | 青训营笔记

348 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第13天

使用MinIO搭建轻量化的对象存储

MinIO是一款开源的高性能对象存储软件. 它的特点是支持分布式,并且其API能够与Amazon S3无缝兼容. 它能够更简单地实现具有弹性伸缩能力的原生对象存储服务.

特点:

  • 简单易于部署
  • 开源免费
  • 支持图形用户界面操作
  • 支持私有化和分布式部署

相较于另外一款国产OSS软件FastDFS,它易于配置,具有可视化的界面. FastDFS的复杂结构一直让人头疼,稍微配置错误一点就会出错.

部署

在测试服务器中,我们采用单机版部署方案,在生产环境中,我们可以配合docker-compose实现自动化的容器部署.

首先,我们在数据目录中建立一个文件夹,令MinIO将其用作对象存储操作.

 mkdir /mnt/data
 sudo chmod -R 775 /mnt/data

然后我们下载MinIO服务器和命令行工具,并按下面的指示启动一个示例服务器:

 export MINIO_ROOT_USER=myminioaccesskey
 export MINIO_ROOT_PASSWORD=myminiosecretkey
 export MINIO_KMS_SECRET_KEY=my-minio-encryption-key:bXltaW5pb2VuY3J5cHRpb25rZXljaGFuZ2VtZTEyMwo=
 ​
 minio server /mnt/data

服务器启动之后就会输出API地址和操作用户等信息,我们就可以利用这些信息配合API开始OSS管理了.

我们还可以利用MinIO的可视化功能来方便的查看对象存储的相关信息: 在浏览器中打开服务器启动时输出的API地址,输入用户和密码后即可查看各种信息 执行管理命令等.

在项目中的应用

在我们的项目中,视频上传模块使用到了MinIO提供的对象存储能力. 我们在项目中编写了一个MinIOUtil工具类,通过这个工具类连接Spring Service和MinIO提供的SDK. 同时,我们还通过MinIO的SDK实现了视频信息的管理 视频封面的自动提取等操作.