package com.qianwen.core.oss.config; import com.qcloud.cos.COSClient; import com.qcloud.cos.ClientConfig; import com.qcloud.cos.auth.BasicCOSCredentials; import com.qcloud.cos.region.Region; import com.qianwen.core.oss.TencentCosTemplate; 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({COSClient.class}) @AutoConfigureAfter({OssConfiguration.class}) @ConditionalOnProperty(value = {"oss.name"}, havingValue = "tencentcos") /* loaded from: blade-starter-oss-9.3.0.0-SNAPSHOT.jar:org/springblade/core/oss/config/TencentCosConfiguration.class */ public class TencentCosConfiguration { private final OssProperties ossProperties; private final OssRule ossRule; public TencentCosConfiguration(final OssProperties ossProperties, final OssRule ossRule) { this.ossProperties = ossProperties; this.ossRule = ossRule; } @ConditionalOnMissingBean({COSClient.class}) @Bean public COSClient ossClient() { BasicCOSCredentials basicCOSCredentials = new BasicCOSCredentials(this.ossProperties.getAccessKey(), this.ossProperties.getSecretKey()); Region region = new Region(this.ossProperties.getRegion()); ClientConfig clientConfig = new ClientConfig(region); clientConfig.setMaxConnectionsCount(1024); clientConfig.setSocketTimeout(50000); clientConfig.setConnectionTimeout(50000); clientConfig.setConnectionRequestTimeout(1000); return new COSClient(basicCOSCredentials, clientConfig); } @ConditionalOnMissingBean({TencentCosTemplate.class}) @ConditionalOnBean({COSClient.class}) @Bean public TencentCosTemplate tencentCosTemplate(COSClient cosClient) { return new TencentCosTemplate(cosClient, this.ossProperties, this.ossRule); } }