SpringBoot上传文件到Minio服务器,支持批量上传
前言
本文主要介绍如何使用SpringBoot上传到minio服务器。
没什么可多说的,公司用什么咱们开发研究什么就完事了。直接分享核心代码。
单个文件上传
minio依赖
<!-- minio依赖 -->
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.2.1</version>
</dependency>
配置文件
首先是核心的参数,包括服务器minio地址,以及用户名密码,使用的桶名称
# 配置minio文件上传的几个核心参数
minio:
minio_url: xxx
minio_name: xxx
minio_pass: xxx
bucketName: xxxx
controller代码
如果只需要上传文件,只需要MultipartFile参数就够了。我的这几个参数都是为了完成业务逻辑
@ApiOperation(value = "身份信息表-附件信息-上传文件", notes = "身份信息表-附件信息-上传文件")
@PostMapping(value = "/upload")
public Result<?> upload(MultipartFile file, Integer fileTypeDic, Integer fileCategoryDic) throws Exception {
return identityFileInfoService.uploadMinio(file, fileTypeDic, fileCategoryDic);
}
service代码
/**
* @Author 魏一鹤
* @Description 上传到minio服务器
* @Date 10:51 2022/12/20
*/
Result<?> uploadMinio(MultipartFile file, Integer fileTypeDic, Integer fileCategoryDic) throws Exception;
serviceImpl代码
做主要的代码就是这在里,获取配置文件里面的几个参数。初始化一个minio客户端
这里面方法的部分参数和代码都是为了满足我个人需求,比如创建存放文件的年月目录层级,获取文件前后缀等。根据自己的需求灵活改变即可。
注意:一下代码进行了部分代码割舍,直接复制可能会报错,根据自己的需求灵活改变即可。
测试
这样访问接口的url,选择File类型的文件,就能进行文件上传了:
在桶里面也是可以看到的
批量文件上传
如果想要进行批量上传,也很简单。只需要把文件改为数组的格式即可:
核心代码如下:
测试
