MinIO介绍
MinIO 是在 Apache License v2.0 下发布的高性能对象存储。 它是与 Amazon S3 云存储服务兼容的 API。MinIO 是一个高性能的对象存储原生支持 Kubernetes 部署的解决方案。
Minio 是一个非常轻量的服务,它可以存储⼤容量的⾮结构化数据,例如图⽚、视频、⽇志⽂件、备份数据和容器/虚拟机镜像等。对于⼤多数的企业来说,这可以说是最为理想的存储媒介了。而一个对象文件可以是任意大小,从几 kb 到最大 5T 不等。
MinIO具备如下特性
- 部署简单,支持各种平台
- 高性能海量存储,支持单个对象最大5TB
- 兼容 Amazon S3接口
- SDK 支持:有类似 Java、Python 或 Go 等语言的 sdk 支持
- 数据保护:即使损坏一般的磁盘依然可用数据恢复
- 高性能:可用达到55G每秒读,35G每秒写的速度
使用Docker 安装 MinIO
第一步:启动一个miniio容器 , 官方文档
docker run --name minio -p 9090:9000 -p 9999:9999 -d \
--restart=always -e \"MINIO_ROOT_USER=minioadmin"\
-e "MINIO_ROOT_PASSWORD=minioadmin123?"\
-v /home/minio/data:/data \
-v /home/minio/config:/root/.minio minio/minio server /data --console-address '0.0.0.0:9999'
第二步:访问minio管理界面 ,端口9090
点击 create a Bucket 创建一个bucket(桶), 这里的Bucket 我们可以理解为文件存储的目录
输入 bucket name ,点击create bucket 。可以通过 upload 上传文件到bucket中。
Java 上传文件到minio
第一步:导入minio的依赖 ,参考文档 Minio官方文档
<dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>7.1.0</version></dependency>
第二步:编写一个测试类
publicstaticvoidmain(String[] args)throwsException{try{// 构建一个Minio客户端MinioClient minioClient =MinioClient.builder()//创建容器时指定的账号.credentials("minioadmin","minioadmin123?")//上传地址.endpoint("http://minio服务器IP:9090").build();File file =newFile("d:/图片.jpg");PutObjectArgs putObjectArgs =PutObjectArgs.builder().object("图片.jpg")//文件名.contentType("image/jpeg")//文件类型.bucket("bucket-test")//存储目录名.stream(newFileInputStream(file), file.length(),-1).build();//文件流,以及大小,-1代表不分片//执行上传ObjectWriteResponse objectWriteResponse = minioClient.putObject(putObjectArgs);System.out.println("上传结果 "+objectWriteResponse);//上传之后的文件地址是:String filePath ="http://115.159.88.63:9090/bucket-test/图片.jpg";}catch(MinioException e){System.out.println("Error occurred: "+ e);}}
执行测试代码之后,观看minio管理界面,多了一个图片
配置权限
我这里上传了一个图片,上传之后,图片的访问地址是: http://minio服务器ip:9090/存储目录/文件名,但是你访问的时候会出现这样的错误 ,那是因为匿名(游客没登录)用户没有访问权限
如果我们需要我们上传的文件可以被匿名用户访问,那么需要添加访问权限:找到文件存储目录,点击manager
然后找到access Rules添加访问规则如下:
然后再次访问,就可以看到上传的图片了
文章就到这里把,喜欢的话建议收藏,顺便给个好评哦,一键三连就更好啦!!!
版权归原作者 墨家巨子@俏如来 所有, 如有侵权,请联系我们删除。