74 lines
1.9 KiB
Java
74 lines
1.9 KiB
Java
package com.rj.config;
|
|
|
|
import io.minio.MinioClient;
|
|
import lombok.Data;
|
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.util.StringUtils;
|
|
|
|
/**
|
|
* MinIO 配置类
|
|
*
|
|
* @author rj
|
|
* @date 2025-10-02
|
|
*/
|
|
@Data
|
|
@Configuration
|
|
@ConfigurationProperties(prefix = "minio")
|
|
public class MinIOConfig {
|
|
|
|
/**
|
|
* MinIO服务器地址
|
|
*/
|
|
private String endpoint;
|
|
|
|
/**
|
|
* 访问密钥
|
|
*/
|
|
private String accessKey;
|
|
|
|
/**
|
|
* 秘密密钥
|
|
*/
|
|
private String secretKey;
|
|
|
|
/**
|
|
* 默认存储桶名称
|
|
*/
|
|
private String bucketName;
|
|
|
|
|
|
/**
|
|
* 创建MinIO客户端Bean
|
|
*/
|
|
@Bean
|
|
public MinioClient minioClient() {
|
|
// 验证必要的配置项
|
|
if (!StringUtils.hasText(endpoint)) {
|
|
throw new IllegalArgumentException("MinIO endpoint 配置不能为空,请在配置文件中设置 minio.endpoint");
|
|
}
|
|
if (!StringUtils.hasText(accessKey)) {
|
|
throw new IllegalArgumentException("MinIO accessKey 配置不能为空,请在配置文件中设置 minio.access-key");
|
|
}
|
|
if (!StringUtils.hasText(secretKey)) {
|
|
throw new IllegalArgumentException("MinIO secretKey 配置不能为空,请在配置文件中设置 minio.secret-key");
|
|
}
|
|
if (!StringUtils.hasText(bucketName)) {
|
|
throw new IllegalArgumentException("MinIO bucketName 配置不能为空,请在配置文件中设置 minio.bucket-name");
|
|
}
|
|
|
|
return MinioClient.builder()
|
|
.endpoint(endpoint)
|
|
.credentials(accessKey, secretKey)
|
|
.build();
|
|
}
|
|
|
|
/**
|
|
* 获取文件访问URL前缀
|
|
*/
|
|
public String getFileUrlPrefix() {
|
|
return endpoint + "/" + bucketName + "/";
|
|
}
|
|
}
|