Springboot整合Minio对象存储超级详细讲解以及配置搭建
以下是Spring Boot整合MinIO对象存储的超级详细配置过程:
- 添加MinIO客户端依赖到
pom.xml
:
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>RELEASE_VERSION</version>
</dependency>
将RELEASE_VERSION
替换为实际的MinIO客户端版本号,例如3.0.10
。
- 在
application.properties
或application.yml
中配置MinIO服务器的连接信息:
# MinIO配置
minio.url=http://127.0.0.1:9000
minio.access-key=your_access_key
minio.secret-key=your_secret_key
minio.secure=false
将your_access_key
和your_secret_key
替换为你的MinIO访问密钥和秘密密钥,如果MinIO没有配置SSL,则minio.secure
应设置为false
。
- 创建MinIO配置类
MinioConfiguration.java
:
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import io.minio.MinioClient;
@Configuration
public class MinioConfiguration {
@Value("${minio.url}")
private String url;
@Value("${minio.access-key}")
private String accessKey;
@Value("${minio.secret-key}")
private String secretKey;
@Value("${minio.secure}")
private boolean secure;
@Bean
public MinioClient minioClient() {
return MinioClient.builder()
.endpoint(url)
.credentials(accessKey, secretKey)
.secure(secure)
.build();
}
}
- 创建MinIO服务类
MinioService.java
:
import io.minio.MinioClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;
@Service
public class MinioService {
@Autowired
private MinioClient minioClient;
public boolean uploadFile(String bucketName, String fileName, InputStream data) throws IOException {
minioClient.putObject(bucketName, fileName, data, data.available(), "application/octet-stream");
return minioClient.bucketExists(bucketName);
}
public void downloadFile(String bucketName, String fileName, String downloadFilename) {
// 实现文件下载逻辑
}
}
- 在你的控制器或服务中注入
MinioService
并使用其提供的方法上传和下载文件。
以上步骤提供了一个基本的MinIO与Spring Boot整合的示例。根据实际需求,你可能需要添加更多的配置和安全措施,比如bucket策略、存储桶策略等。
评论已关闭