springboot中如何使用minio存储容器
程序员文章站
2022-03-01 17:53:50
目录docker运行java导包配置文件操作本地浏览设置总结docker运行docker run -p 9000:9000 -p 9001:9001 -v /mydata/minio...
docker运行
docker run -p 9000:9000 -p 9001:9001 -v /mydata/minio/data:/data minio/minio server /data --console-address ":9001
java导包
最好是这个版本,其他版本尝试过都出bug了
<dependency> <groupid>io.minio</groupid> <artifactid>minio</artifactid> <version>8.2.1</version> </dependency>
配置文件
spring: # 上传文件大小设置 servlet: multipart: enabled: true max-file-size: 50mb minio: endpoint: xxx:9000 accesskey: xxx secretkey: xxx bucketname: xxx
操作
1、编写一个属性文件
@data @component @configurationproperties(prefix = "minio") // 从配置文件的前缀拿 public class minioproperties { private string endpoint; private string accesskey; private string secretkey; }
2、编写一个minioclient
@configuration public class minioconfig { @resource private minioproperties minioproperties; @bean public minioclient minioclient() { system.out.println(minioproperties.getaccesskey()); system.out.println(minioproperties.getsecretkey()); minioclient minioclient = minioclient.builder() .endpoint(minioproperties.getendpoint()) .credentials(minioproperties.getaccesskey(), minioproperties.getsecretkey()) .build(); return minioclient; } }
3、上传文件api
public class minioserviceimpl implements minioservice { @value("${minio.bucketname}") private string bucketname; @value("${minio.endpoint}") private string endpoint; @resource private minioclient minioclient; @override public list<string> uploadfile(multipartfile[] file) throws serverexception, insufficientdataexception, errorresponseexception, nosuchalgorithmexception, invalidkeyexception, invalidresponseexception, xmlparserexception, internalexception { if (file == null || file.length == 0) { throw new apiexception(resultcode.param_is_blank); } list<string> fileurllist = new arraylist<>(file.length); string url = ""; for (multipartfile multipartfile : file) { // 1.获取文件名 string originalfilename = multipartfile.getoriginalfilename(); // 2.截取后缀名 string imgsuffix = originalfilename.substring(originalfilename.lastindexof(".")); // 3.生成唯一名 string newfilename = uuid.randomuuid().tostring() + imgsuffix; // 4.日期目录 simpledateformat dateformat = new simpledateformat("yyyy/mm/dd"); string datapath = dateformat.format(new date()); // 5.合成路径 string finalfilename = datapath + "/" + newfilename; // 别忘了bucketname url = endpoint + "/" + bucketname + "/" + finalfilename; try { // 文件上传 inputstream in = multipartfile.getinputstream(); minioclient.putobject(putobjectargs.builder().bucket(bucketname).object(finalfilename).stream( in, multipartfile.getsize(), -1) .contenttype(multipartfile.getcontenttype()) .build()); in.close(); fileurllist.add(url); } catch (ioexception e) { throw new apiexception(resultcode.common_fail); } } return fileurllist; } }
本地浏览设置
通过上面这串url就可以直接访问图片了
总结
到此这篇关于springboot中如何使用minio存储容器的文章就介绍到这了,更多相关springboot minio存储容器内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
推荐阅读
-
Springboot如何获取配置文件application.yml中自定义的变量并使用
-
如何在springboot中扩展springmvc的功能以及使用拦截器
-
在SpringBoot中,如何使用Netty实现远程调用方法总结
-
PHP中如何使用Redis接管文件存储Session详解
-
Springboot中如何使用Jackson
-
在springboot中如何使用filter设置要排除的URL
-
在SpringBoot中如何使用模板引擎thymeleaf
-
你知道在springboot中如何使用WebSocket吗
-
springboot中如何使用minio存储容器
-
如何在SQL SERVER 2005存储过程中,使用循环语句