Springboot整合Minio实现文件上传、下载

本文介绍了如何在SpringBoot项目中集成Minio进行文件上传和下载,包括环境准备、依赖引入、配置文件设置以及代码实现,提供了详细步骤和关键类的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

前言

一、环境准备

二、环境配置

1、引入依赖

2、添加配置文件

三、代码编写

1、添加配置类

2、添加工具类

四、方法测试

1、文件上传

注意:

2、文件下载

结语


前言

springboot作为目前主流的java开发框架,用来简化spring程序的创建和开发过程。在实际开发过程中我们往往会遇到部分涉及文件上传、下载的场景。经过多方筛选最终选用了Minio作为项目与中的文件存储工具。

Minio作为一款高性能、可扩展、分布式对象存储系统,并且它是完全开源免费的一款工具,非常适合实际项目的使用!!!

关于Minio的Windows的安装教程,各位小伙伴可以参考上一篇Minio安装的教程

地址:Minio基于Window系统的安装与使用-CSDN博客

下面让我们一起来了解一下SpringBoot整合Minio的具体实现方式。

一、环境准备

在使用Minio之前我们要做的第一件事情就是有一个SpringBoot项目,需要小伙伴自行创建或者使用现有项目。土豆这里使用的是自己原有的一个若以框架改过来的一个项目,但是这个项目此前没有使用过Minio,确认这点有助于更加顺利的完成我们的测试。

如果小伙伴的项目中原本使用过Minio的,也没关系哈,可以根据本文做一个参考进一步完善项目内容。

准备好项目之后咱们就可以开始本次的任务了,请跟随土豆一起搞起来,呦吼!!!

二、环境配置

1、引入依赖

在pom.xml中引入Minio的依赖:

<dependencies>
    <!--Minio-->
    <dependency>
        <groupId>io.minio</groupId>
        <artifactId>minio</artifactId>
        <version>8.4.6</version>
    </dependency> 
    <!--okhttp3 依赖-->
    <dependency>
        <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>4.9.3</version>
        </dependency>
</dependencies>

2、添加配置文件

application.yml配置信息

# 配置minio
minio:
  server: http://localhost
  port: 9000
  endpoint: ${minio.server}:${minio.port}
  access-key: admin  # minio账号
  secret-key: admin118110  # minio密码
  bucket: demo001   # 指定桶名

三、代码编写

完成项目的基础配置之后,接下来咱开始来编写我们的代码

1、添加配置类


import io.minio.MinioClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

/**
 * @author YHL
 * @date 2024/4/24 9:36
 * @description 当前配置类不建议使用@Data注解,需要手动生成get,set方法
 */
@Component
@ConfigurationProperties(prefix = "minio")
public class MinIoClientConfig {

    @Value("${minio.server}")
    private String server;
    @Value("${minio.port}")
    private int port;
    @Value("${minio.endpoint}")
    private String endpoint;
    @Value("${minio.access-key}")
    private String accessKey;
    @Value("${minio.secret-key}")
    private String secretKey;
    @Value("${minio.bucket}")
    private String bucket;

    /**
     * 创建minio连接对象
     * @return
     */
    @Bean
    public MinioClient minioClient(){
        return  MinioClient.builder()
                .endpoint(server,port,false)
                .credentials(accessKey,secretKey)
                .build();
    }

    public String getServer() {
        return server;
    }

    public void setServer(String server) {
        this.server = server;
    }

    public int getPort() {
        return port;
    }

    public void setPort(int port) {
        this.port = port;
    }

    public String getEndpoint() {
        return endpoint;
    }

    public void setEndpoint(String endpoint) {
        this.endpoint = endpoint;
    }

    public String getAccessKey() {
        return accessKey;
    }

    public void setAccessKey(String accessKey) {
        this.acce
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值