Files
smartDriveEE/src/main/java/com/rj/config/MinIOConfig.java
2025-10-04 19:52:06 +08:00

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 + "/";
}
}