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();
ClientConfiguration configuration = new ClientConfiguration(); try {
DefaultCredentialProvider credentialProvider = new DefaultCredentialProvider( ClientConfiguration configuration = new ClientConfiguration();
this.properties.getAccessKeyId(), DefaultCredentialProvider credentialProvider = new DefaultCredentialProvider(
this.properties.getAccessKeySecret()); this.properties.getAccessKeyId(),
client = new OSSClient(this.properties.getEndpoint(), credentialProvider, configuration); this.properties.getAccessKeySecret());
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();
minioClient = MinioClient.builder() try {
.endpoint(this.properties.getEndpoint()) minioClient = MinioClient.builder()
.credentials(this.properties.getAccessKey(), this.properties.getSecretKey()) .endpoint(this.properties.getEndpoint())
.build(); .credentials(this.properties.getAccessKey(), this.properties.getSecretKey())
.build();
} catch (Exception e) {
throw new IllegalArgumentException("Minio存储配置错误! 请检查系统配置!");
}
} }
@Override @Override

View File

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

View File

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