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类型的文件,就能进行文件上传了:
在桶里面也是可以看到的
批量文件上传
如果想要进行批量上传,也很简单。只需要把文件改为数组的格式即可:
核心代码如下:
测试