From 7cffafcdaa92f904cffe91284d641c781829b035 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期日, 18 七月 2021 19:29:33 +0800 Subject: [PATCH] update 增加OSS模块service自动激活 --- ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioCloudStorageServiceImpl.java | 12 ++++-- ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/CloudServiceEnumd.java | 22 +++++++++-- ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuCloudStorageServiceImpl.java | 24 +++++++----- ruoyi-oss/src/main/java/com/ruoyi/oss/factory/OssFactory.java | 9 +++- ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/AliyunCloudStorageServiceImpl.java | 14 ++++-- ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QcloudCloudStorageServiceImpl.java | 20 ++++++---- 6 files changed, 68 insertions(+), 33 deletions(-) diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/CloudServiceEnumd.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/CloudServiceEnumd.java index 56e0906..497af55 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/CloudServiceEnumd.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/CloudServiceEnumd.java @@ -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 @@ /** * 涓冪墰浜� */ - 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; + } } diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/factory/OssFactory.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/factory/OssFactory.java index b549d21..bc7e7f3 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/factory/OssFactory.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/factory/OssFactory.java @@ -3,6 +3,7 @@ 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 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) { diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/AliyunCloudStorageServiceImpl.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/AliyunCloudStorageServiceImpl.java index 7ac46e1..6a84dde 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/AliyunCloudStorageServiceImpl.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/AliyunCloudStorageServiceImpl.java @@ -32,11 +32,15 @@ @Autowired public AliyunCloudStorageServiceImpl(CloudStorageProperties properties) { this.properties = properties.getAliyun(); - ClientConfiguration configuration = new ClientConfiguration(); - DefaultCredentialProvider credentialProvider = new DefaultCredentialProvider( - this.properties.getAccessKeyId(), - this.properties.getAccessKeySecret()); - client = new OSSClient(this.properties.getEndpoint(), credentialProvider, configuration); + 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 diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioCloudStorageServiceImpl.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioCloudStorageServiceImpl.java index 61ed4bb..bca97df 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioCloudStorageServiceImpl.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioCloudStorageServiceImpl.java @@ -29,10 +29,14 @@ @Autowired public MinioCloudStorageServiceImpl(CloudStorageProperties properties) { this.properties = properties.getMinio(); - minioClient = MinioClient.builder() - .endpoint(this.properties.getEndpoint()) - .credentials(this.properties.getAccessKey(), this.properties.getSecretKey()) - .build(); + try { + minioClient = MinioClient.builder() + .endpoint(this.properties.getEndpoint()) + .credentials(this.properties.getAccessKey(), this.properties.getSecretKey()) + .build(); + } catch (Exception e) { + throw new IllegalArgumentException("Minio瀛樺偍閰嶇疆閿欒! 璇锋鏌ョ郴缁熼厤缃�!"); + } } @Override diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QcloudCloudStorageServiceImpl.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QcloudCloudStorageServiceImpl.java index 2b1b023..3b367b7 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QcloudCloudStorageServiceImpl.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QcloudCloudStorageServiceImpl.java @@ -32,14 +32,18 @@ @Autowired public QcloudCloudStorageServiceImpl(CloudStorageProperties properties) { this.properties = properties.getQcloud(); - COSCredentials credentials = new BasicCOSCredentials( - this.properties.getSecretId(), - this.properties.getSecretKey()); - // 鍒濆鍖栧鎴风閰嶇疆 - ClientConfig clientConfig = new ClientConfig(); - // 璁剧疆bucket鎵�鍦ㄧ殑鍖哄煙锛屽崕鍗楋細gz 鍗庡寳锛歵j 鍗庝笢锛歴h - clientConfig.setRegion(new Region(this.properties.getRegion())); - client = new COSClient(credentials, clientConfig); + try { + COSCredentials credentials = new BasicCOSCredentials( + this.properties.getSecretId(), + this.properties.getSecretKey()); + // 鍒濆鍖栧鎴风閰嶇疆 + ClientConfig clientConfig = new ClientConfig(); + // 璁剧疆bucket鎵�鍦ㄧ殑鍖哄煙锛屽崕鍗楋細gz 鍗庡寳锛歵j 鍗庝笢锛歴h + clientConfig.setRegion(new Region(this.properties.getRegion())); + client = new COSClient(credentials, clientConfig); + } catch (Exception e) { + throw new IllegalArgumentException("鑵捐浜戝瓨鍌ㄩ厤缃敊璇�! 璇锋鏌ョ郴缁熼厤缃�!"); + } } @Override diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuCloudStorageServiceImpl.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuCloudStorageServiceImpl.java index 2f7a246..ee4e4ab 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuCloudStorageServiceImpl.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuCloudStorageServiceImpl.java @@ -36,16 +36,20 @@ @Autowired public QiniuCloudStorageServiceImpl(CloudStorageProperties properties) { this.properties = properties.getQiniu(); - // z0 z1 z2 - Configuration config = new Configuration(Region.autoRegion()); - // 榛樿涓嶄娇鐢╤ttps - config.useHttpsDomains = false; - uploadManager = new UploadManager(config); - Auth auth = Auth.create( - this.properties.getAccessKey(), - this.properties.getSecretKey()); - token = auth.uploadToken(this.properties.getBucketName()); - bucketManager = new BucketManager(auth, config); + try { + // z0 z1 z2 + Configuration config = new Configuration(Region.autoRegion()); + // 榛樿涓嶄娇鐢╤ttps + config.useHttpsDomains = false; + uploadManager = new UploadManager(config); + Auth auth = Auth.create( + this.properties.getAccessKey(), + this.properties.getSecretKey()); + token = auth.uploadToken(this.properties.getBucketName()); + bucketManager = new BucketManager(auth, config); + } catch (Exception e) { + throw new IllegalArgumentException("涓冪墰浜戝瓨鍌ㄩ厤缃敊璇�! 璇锋鏌ョ郴缁熼厤缃�!"); + } } -- Gitblit v1.9.3