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