优化 oss bean 构造,可以减少 bean 冲突。

This commit is contained in:
卢春梦 2025-02-13 17:35:42 +08:00
parent 31acc1de3c
commit b94d9f61d2
3 changed files with 16 additions and 23 deletions

View File

@ -19,7 +19,6 @@ import com.aliyun.oss.ClientConfiguration;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.common.auth.CredentialsProvider;
import com.aliyun.oss.common.auth.DefaultCredentialProvider;
import lombok.AllArgsConstructor;
import org.springblade.core.oss.AliossTemplate;
import org.springblade.core.oss.props.OssProperties;
import org.springblade.core.oss.rule.OssRule;
@ -36,19 +35,15 @@ import org.springframework.context.annotation.Bean;
*
* @author Chill
*/
@AllArgsConstructor
@AutoConfiguration(after = OssConfiguration.class)
@EnableConfigurationProperties(OssProperties.class)
@ConditionalOnClass({OSSClient.class})
@ConditionalOnProperty(value = "oss.name", havingValue = "alioss")
public class AliossConfiguration {
private final OssProperties ossProperties;
private final OssRule ossRule;
@Bean
@ConditionalOnMissingBean(OSSClient.class)
public OSSClient ossClient() {
public OSSClient ossClient(OssProperties ossProperties) {
// 创建ClientConfigurationClientConfiguration是OSSClient的配置类可配置代理连接超时最大连接数等参数
ClientConfiguration conf = new ClientConfiguration();
// 设置OSSClient允许打开的最大HTTP连接数默认为1024个
@ -70,7 +65,9 @@ public class AliossConfiguration {
@Bean
@ConditionalOnBean({OSSClient.class})
@ConditionalOnMissingBean(AliossTemplate.class)
public AliossTemplate aliossTemplate(OSSClient ossClient) {
public AliossTemplate aliossTemplate(OssRule ossRule,
OssProperties ossProperties,
OSSClient ossClient) {
return new AliossTemplate(ossClient, ossProperties, ossRule);
}

View File

@ -16,7 +16,6 @@
package org.springblade.core.oss.config;
import io.minio.MinioClient;
import lombok.AllArgsConstructor;
import lombok.SneakyThrows;
import org.springblade.core.oss.MinioTemplate;
import org.springblade.core.oss.props.OssProperties;
@ -34,21 +33,16 @@ import org.springframework.context.annotation.Bean;
*
* @author Chill
*/
@AllArgsConstructor
@AutoConfiguration(after = OssConfiguration.class)
@ConditionalOnClass({MinioClient.class})
@EnableConfigurationProperties(OssProperties.class)
@ConditionalOnProperty(value = "oss.name", havingValue = "minio")
public class MinioConfiguration {
private final OssProperties ossProperties;
private final OssRule ossRule;
@Bean
@SneakyThrows
@ConditionalOnMissingBean(MinioClient.class)
public MinioClient minioClient() {
public MinioClient minioClient(OssProperties ossProperties) {
return MinioClient.builder()
.endpoint(ossProperties.getEndpoint())
.credentials(ossProperties.getAccessKey(), ossProperties.getSecretKey())
@ -58,7 +52,9 @@ public class MinioConfiguration {
@Bean
@ConditionalOnBean({MinioClient.class})
@ConditionalOnMissingBean(MinioTemplate.class)
public MinioTemplate minioTemplate(MinioClient minioClient) {
public MinioTemplate minioTemplate(OssRule ossRule,
OssProperties ossProperties,
MinioClient minioClient) {
return new MinioTemplate(minioClient, ossRule, ossProperties);
}

View File

@ -19,7 +19,6 @@ import com.qiniu.storage.BucketManager;
import com.qiniu.storage.Region;
import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth;
import lombok.AllArgsConstructor;
import org.springblade.core.oss.QiniuTemplate;
import org.springblade.core.oss.props.OssProperties;
import org.springblade.core.oss.rule.OssRule;
@ -36,16 +35,12 @@ import org.springframework.context.annotation.Bean;
*
* @author Chill
*/
@AllArgsConstructor
@AutoConfiguration(after = OssConfiguration.class)
@ConditionalOnClass({Auth.class, UploadManager.class, BucketManager.class})
@EnableConfigurationProperties(OssProperties.class)
@ConditionalOnProperty(value = "oss.name", havingValue = "qiniu")
public class QiniuConfiguration {
private final OssProperties ossProperties;
private final OssRule ossRule;
@Bean
@ConditionalOnMissingBean(com.qiniu.storage.Configuration.class)
public com.qiniu.storage.Configuration qnConfiguration() {
@ -54,7 +49,7 @@ public class QiniuConfiguration {
@Bean
@ConditionalOnMissingBean(Auth.class)
public Auth auth() {
public Auth auth(OssProperties ossProperties) {
return Auth.create(ossProperties.getAccessKey(), ossProperties.getSecretKey());
}
@ -66,14 +61,19 @@ public class QiniuConfiguration {
@Bean
@ConditionalOnBean(com.qiniu.storage.Configuration.class)
public BucketManager bucketManager(com.qiniu.storage.Configuration cfg) {
public BucketManager bucketManager(OssProperties ossProperties,
com.qiniu.storage.Configuration cfg) {
return new BucketManager(Auth.create(ossProperties.getAccessKey(), ossProperties.getSecretKey()), cfg);
}
@Bean
@ConditionalOnBean({Auth.class, UploadManager.class, BucketManager.class})
@ConditionalOnMissingBean(QiniuTemplate.class)
public QiniuTemplate qiniuTemplate(Auth auth, UploadManager uploadManager, BucketManager bucketManager) {
public QiniuTemplate qiniuTemplate(OssRule ossRule,
OssProperties ossProperties,
Auth auth,
UploadManager uploadManager,
BucketManager bucketManager) {
return new QiniuTemplate(auth, uploadManager, bucketManager, ossProperties, ossRule);
}