package com.ard.config; import io.minio.MinioClient; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.springframework.stereotype.Component; import java.io.IOException; import java.util.Properties; /** * @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 = getYmlNew("minio.endpoint"); accessKey = getYmlNew("minio.accessKey"); secretKey = getYmlNew("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; } /*yml配置信息获取*/ public static String getYmlNew(String key) { Resource resource = new ClassPathResource("application.yml"); Properties properties = null; try { YamlPropertiesFactoryBean yamlFactory = new YamlPropertiesFactoryBean(); yamlFactory.setResources(resource); properties = yamlFactory.getObject(); } catch (Exception e) { e.printStackTrace(); return null; } return properties.get(key).toString(); } }