package com.qianwen.core.oss.config; import io.minio.MinioClient; import com.qianwen.core.oss.MinioTemplate; import com.qianwen.core.oss.props.OssProperties; import com.qianwen.core.oss.rule.OssRule; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @EnableConfigurationProperties({OssProperties.class}) @Configuration(proxyBeanMethods = false) @ConditionalOnClass({MinioClient.class}) @AutoConfigureAfter({OssConfiguration.class}) @ConditionalOnProperty(value = {"oss.name"}, havingValue = "minio") /* loaded from: blade-starter-oss-9.3.0.0-SNAPSHOT.jar:org/springblade/core/oss/config/MinioConfiguration.class */ public class MinioConfiguration { private final OssProperties ossProperties; private final OssRule ossRule; public MinioConfiguration(final OssProperties ossProperties, final OssRule ossRule) { this.ossProperties = ossProperties; this.ossRule = ossRule; } @ConditionalOnMissingBean({MinioClient.class}) @Bean public MinioClient minioClient() { return MinioClient.builder().endpoint(this.ossProperties.getEndpoint()).credentials(this.ossProperties.getAccessKey(), this.ossProperties.getSecretKey()).build(); } @ConditionalOnMissingBean({MinioTemplate.class}) @ConditionalOnBean({MinioClient.class}) @Bean public MinioTemplate minioTemplate(MinioClient minioClient) { return new MinioTemplate(minioClient, this.ossRule, this.ossProperties); } }