package com.qianwen.core.oss.config;
|
|
import com.aliyun.oss.ClientConfiguration;
|
import com.aliyun.oss.OSSClient;
|
import com.aliyun.oss.common.auth.DefaultCredentialProvider;
|
import com.qianwen.core.oss.AliossTemplate;
|
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({OSSClient.class})
|
@AutoConfigureAfter({OssConfiguration.class})
|
@ConditionalOnProperty(value = {"oss.name"}, havingValue = "alioss")
|
/* loaded from: blade-starter-oss-9.3.0.0-SNAPSHOT.jar:org/springblade/core/oss/config/AliossConfiguration.class */
|
public class AliossConfiguration {
|
private final OssProperties ossProperties;
|
private final OssRule ossRule;
|
|
public AliossConfiguration(final OssProperties ossProperties, final OssRule ossRule) {
|
this.ossProperties = ossProperties;
|
this.ossRule = ossRule;
|
}
|
|
@ConditionalOnMissingBean({OSSClient.class})
|
@Bean
|
public OSSClient ossClient() {
|
ClientConfiguration conf = new ClientConfiguration();
|
conf.setMaxConnections(1024);
|
conf.setSocketTimeout(50000);
|
conf.setConnectionTimeout(50000);
|
conf.setConnectionRequestTimeout(1000);
|
conf.setIdleConnectionTime(60000L);
|
conf.setMaxErrorRetry(5);
|
return new OSSClient(this.ossProperties.getEndpoint(), new DefaultCredentialProvider(this.ossProperties.getAccessKey(), this.ossProperties.getSecretKey()), conf);
|
}
|
|
@ConditionalOnMissingBean({AliossTemplate.class})
|
@ConditionalOnBean({OSSClient.class})
|
@Bean
|
public AliossTemplate aliossTemplate(OSSClient ossClient) {
|
return new AliossTemplate(ossClient, this.ossProperties, this.ossRule);
|
}
|
}
|