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; 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.AllArgsConstructor;
import lombok.Getter; 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("minio", MinioCloudStorageServiceImpl.class);
private final String value; 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 cn.hutool.core.lang.Assert;
import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.oss.constant.CloudConstant; import com.ruoyi.oss.constant.CloudConstant;
import com.ruoyi.oss.enumd.CloudServiceEnumd;
import com.ruoyi.oss.service.ICloudStorageService; import com.ruoyi.oss.service.ICloudStorageService;
import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysConfigService;
@ -26,11 +27,15 @@ public class OssFactory {
public static ICloudStorageService instance() { public static ICloudStorageService instance() {
String type = sysConfigService.selectConfigByKey(CloudConstant.CLOUD_STORAGE_CONFIG_KEY); String type = sysConfigService.selectConfigByKey(CloudConstant.CLOUD_STORAGE_CONFIG_KEY);
return SERVICES.get(type); return instance(type);
} }
public static ICloudStorageService instance(String 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) { public static void register(String type, ICloudStorageService iCloudStorageService) {

View File

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

View File

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

View File

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

View File

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