目录
前言
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