package com.ard.config;
|
|
import com.ard.utils.other.SpringTool;
|
import io.minio.MinioClient;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.integration.channel.DefaultHeaderChannelRegistry;
|
import org.springframework.integration.channel.PublishSubscribeChannel;
|
import org.springframework.stereotype.Component;
|
|
/**
|
* @Description:
|
* @ClassName: MinioClientSingleton
|
* @Author: 刘苏义
|
* @Date: 2023年05月18日9:32
|
* @Version: 1.0
|
**/
|
|
@Slf4j(topic = "minio")
|
@Component
|
public class MinioClientSingleton {
|
|
public static String domainUrl;
|
private static String accessKey;
|
private static String secretKey;
|
|
private volatile static MinioClient minioClient;
|
|
static {
|
domainUrl = SpringTool.getYmlInfo("minio.endpoint");
|
accessKey = SpringTool.getYmlInfo("minio.accessKey");
|
secretKey = SpringTool.getYmlInfo("minio.secretKey");
|
log.info("minio信息:" + domainUrl + "(" + accessKey + "/" + secretKey + ")");
|
}
|
|
/**
|
* 获取minio客户端实例
|
*
|
* @return {@link MinioClient}
|
*/
|
public static MinioClient getMinioClient() {
|
if (minioClient == null) {
|
synchronized (MinioClientSingleton.class) {
|
if (minioClient == null) {
|
minioClient = MinioClient.builder()
|
.endpoint(domainUrl)
|
.credentials(accessKey, secretKey)
|
.build();
|
}
|
}
|
}
|
return minioClient;
|
}
|
|
|
@Bean
|
public PublishSubscribeChannel errorChannel() {
|
return new PublishSubscribeChannel();
|
}
|
@Bean
|
public DefaultHeaderChannelRegistry integrationHeaderChannelRegistry() {
|
return new DefaultHeaderChannelRegistry();
|
}
|
}
|