这是我参与「第五届青训营 」笔记创作活动的第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实现了视频信息的管理 视频封面的自动提取等操作.