update 增加OSS模块service自动激活

This commit is contained in:
疯狂的狮子li 2021-07-18 19:29:33 +08:00
parent f847f67982
commit 7cffafcdaa
6 changed files with 68 additions and 33 deletions

View File

@ -1,5 +1,8 @@
package com.ruoyi.oss.enumd;
import com.ruoyi.oss.service.impl.AliyunCloudStorageServiceImpl;
import com.ruoyi.oss.service.impl.MinioCloudStorageServiceImpl;
import com.ruoyi.oss.service.impl.QiniuCloudStorageServiceImpl;
import lombok.AllArgsConstructor;
import lombok.Getter;
@ -15,22 +18,33 @@ public enum CloudServiceEnumd {
/**
* 七牛云
*/
QINIU("qiniu"),
QINIU("qiniu", QiniuCloudStorageServiceImpl.class),
/**
* 阿里云
*/
ALIYUN("aliyun"),
ALIYUN("aliyun", AliyunCloudStorageServiceImpl.class),
/**
* 腾讯云
*/
QCLOUD("qcloud"),
QCLOUD("qcloud", QiniuCloudStorageServiceImpl.class),
/**
* minio
*/
MINIO("minio");
MINIO("minio", MinioCloudStorageServiceImpl.class);
private final String value;
private final Class<?> serviceClass;
public static Class<?> getServiceClass(String value) {
for (CloudServiceEnumd clazz : values()) {
if (clazz.getValue().equals(value)) {
return clazz.getServiceClass();
}
}
return null;
}
}

View File

@ -3,6 +3,7 @@ package com.ruoyi.oss.factory;
import cn.hutool.core.lang.Assert;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.oss.constant.CloudConstant;
import com.ruoyi.oss.enumd.CloudServiceEnumd;
import com.ruoyi.oss.service.ICloudStorageService;
import com.ruoyi.system.service.ISysConfigService;
@ -26,11 +27,15 @@ public class OssFactory {
public static ICloudStorageService instance() {
String type = sysConfigService.selectConfigByKey(CloudConstant.CLOUD_STORAGE_CONFIG_KEY);
return SERVICES.get(type);
return instance(type);
}
public static ICloudStorageService instance(String type) {
return SERVICES.get(type);
ICloudStorageService service = SERVICES.get(type);
if (service == null) {
service = (ICloudStorageService) SpringUtils.getBean(CloudServiceEnumd.getServiceClass(type));
}
return service;
}
public static void register(String type, ICloudStorageService iCloudStorageService) {

View File

@ -32,11 +32,15 @@ public class AliyunCloudStorageServiceImpl extends AbstractCloudStorageService i
@Autowired
public AliyunCloudStorageServiceImpl(CloudStorageProperties properties) {
this.properties = properties.getAliyun();
try {
ClientConfiguration configuration = new ClientConfiguration();
DefaultCredentialProvider credentialProvider = new DefaultCredentialProvider(
this.properties.getAccessKeyId(),
this.properties.getAccessKeySecret());
client = new OSSClient(this.properties.getEndpoint(), credentialProvider, configuration);
} catch (Exception e) {
throw new IllegalArgumentException("阿里云存储配置错误! 请检查系统配置!");
}
}
@Override

View File

@ -29,10 +29,14 @@ public class MinioCloudStorageServiceImpl extends AbstractCloudStorageService im
@Autowired
public MinioCloudStorageServiceImpl(CloudStorageProperties properties) {
this.properties = properties.getMinio();
try {
minioClient = MinioClient.builder()
.endpoint(this.properties.getEndpoint())
.credentials(this.properties.getAccessKey(), this.properties.getSecretKey())
.build();
} catch (Exception e) {
throw new IllegalArgumentException("Minio存储配置错误! 请检查系统配置!");
}
}
@Override

View File

@ -32,6 +32,7 @@ public class QcloudCloudStorageServiceImpl extends AbstractCloudStorageService i
@Autowired
public QcloudCloudStorageServiceImpl(CloudStorageProperties properties) {
this.properties = properties.getQcloud();
try {
COSCredentials credentials = new BasicCOSCredentials(
this.properties.getSecretId(),
this.properties.getSecretKey());
@ -40,6 +41,9 @@ public class QcloudCloudStorageServiceImpl extends AbstractCloudStorageService i
// 设置bucket所在的区域华南gz 华北tj 华东sh
clientConfig.setRegion(new Region(this.properties.getRegion()));
client = new COSClient(credentials, clientConfig);
} catch (Exception e) {
throw new IllegalArgumentException("腾讯云存储配置错误! 请检查系统配置!");
}
}
@Override

View File

@ -36,6 +36,7 @@ public class QiniuCloudStorageServiceImpl extends AbstractCloudStorageService im
@Autowired
public QiniuCloudStorageServiceImpl(CloudStorageProperties properties) {
this.properties = properties.getQiniu();
try {
// z0 z1 z2
Configuration config = new Configuration(Region.autoRegion());
// 默认不使用https
@ -46,6 +47,9 @@ public class QiniuCloudStorageServiceImpl extends AbstractCloudStorageService im
this.properties.getSecretKey());
token = auth.uploadToken(this.properties.getBucketName());
bucketManager = new BucketManager(auth, config);
} catch (Exception e) {
throw new IllegalArgumentException("七牛云存储配置错误! 请检查系统配置!");
}
}