关于对象存储系统,网上有很多,比如阿里云,腾讯云,还有七牛云,都有对应的对象存储系统。今天我们来说的是一款企业常用的minio,这款系统需要自己手动搭建,是一款轻量级,高性能的对象存储系统,与其他应用可以轻松的结合,配置简单。
docker安装Minio
首先我们创建两个目录,一个data,一个config。一个来存放数据,一个来存放配置。并赋予这两个文件夹对应的权限。
mkdir -p /app/cloud/minio/data
mkdir -p /app/cloud/minio/config
chmod -R 777 /app/cloud/minio/data
chmod -R 777 /app/cloud/minio/config
然后我们需要拉取镜像
docker pull minio:minio
然后我们就可以启动容器
docker run -d -p 9000:9000 --name minio \
-e "MINIO_ACCESS_KEY=minio" \
-e "MINIO_SECRET_KEY=Aa123456" \
-v /app/cloud/minio/data:/data \
-v /app/cloud/minio/config:/root/.minio \
minio/minio server /data
最后就可以正常访问了。
java操作Minio
minio服务搭建完成,现在就是用java来操作minio,操作minio,首先引用minio依赖
<dependency>
<groupId>io.minio</groupId> <artifactId>minio</artifactId><version>7.0.1</version></dependency>
然后就在yml中配置minio的基本信息,比如minio服务地址,用户名,密码以及bucketname。
然后创建对应的minionconfig读取配置文件的信息。
然后创建minioclient,进行对应的api操作即可。
实战
公司中,一般不会直接使用原始minioclient中的api,通常会进行api的二次封装再进行使用。
首先,会自定义一个minio的starter。 该starter中 主要封装了 自定义的minioclient和minioOperate。
自定义minioclient主要维护operate和真正的minioclient实例
operate主要根据自定义minioclient传入的client,进行真正的功能实现,以及功能扩展。
我们自定义了这样一个starter后,将该starter引入真正的项目中,并创建对应的minio工具类来对minio进行操作。 大致操作就是这样。