update 增加OSS模块service自动激活
This commit is contained in:
parent
f847f67982
commit
7cffafcdaa
|
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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("七牛云存储配置错误! 请检查系统配置!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue