package com.qianwen.core.oss.config; import com.aliyun.oss.OSSClient; import com.obs.services.ObsClient; import com.obs.services.ObsConfiguration; import com.qianwen.core.oss.HuaweiObsTemplate; import com.qianwen.core.oss.props.OssProperties; import com.qianwen.core.oss.rule.BladeOssRule; 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({OSSClient.class}) @AutoConfigureAfter({OssConfiguration.class}) @ConditionalOnProperty(value = {"oss.name"}, havingValue = "huaweiobs") /* loaded from: blade-starter-oss-9.3.0.0-SNAPSHOT.jar:org/springblade/core/oss/config/HuaweiObsConfiguration.class */ public class HuaweiObsConfiguration { private final OssProperties ossProperties; public HuaweiObsConfiguration(final OssProperties ossProperties) { this.ossProperties = ossProperties; } @ConditionalOnMissingBean({OssRule.class}) @Bean public OssRule ossRule() { return new BladeOssRule(this.ossProperties.getTenantMode()); } @ConditionalOnMissingBean({ObsClient.class}) @Bean public ObsClient ossClient() { ObsConfiguration conf = new ObsConfiguration(); conf.setEndPoint(this.ossProperties.getEndpoint()); conf.setMaxConnections(1024); conf.setSocketTimeout(50000); conf.setConnectionTimeout(50000); conf.setConnectionRequestTimeout(1000); conf.setIdleConnectionTime(60000); conf.setMaxErrorRetry(5); return new ObsClient(this.ossProperties.getAccessKey(), this.ossProperties.getSecretKey(), conf); } @ConditionalOnMissingBean({HuaweiObsTemplate.class}) @ConditionalOnBean({ObsClient.class, OssRule.class}) @Bean public HuaweiObsTemplate huaweiobsTemplate(ObsClient ossClient, OssRule ossRule) { return new HuaweiObsTemplate(ossClient, this.ossProperties, ossRule); } }