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类型的文件,就能进行文件上传了:

在桶里面也是可以看到的

批量文件上传

如果想要进行批量上传,也很简单。只需要把文件改为数组的格式即可:

核心代码如下:

测试

经验分享 程序员 微信小程序 职场和发展