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);
|
}
|
}
|