diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/RedissonConfig.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/RedissonConfig.java
index 260e4edb83..ad02d71365 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/RedissonConfig.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/RedissonConfig.java
@@ -1,6 +1,7 @@
package com.epmet.commons.tools.config;
import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.commons.tools.constant.StrConstant;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.redisson.Redisson;
@@ -18,6 +19,8 @@ import org.springframework.context.annotation.Configuration;
@Configuration
public class RedissonConfig {
+ @Value("${spring.redis.cluster-enabled}")
+ private Boolean clusterEnabled;
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.port}")
@@ -26,8 +29,8 @@ public class RedissonConfig {
private String password;
@Value("${spring.redis.cluster.nodes}")
private String clusterNodesStr;
- @Value("${spring.redis.cluster.max-redirects}")
- private Integer rediTimes;
+// @Value("${spring.redis.cluster.max-redirects}")
+// private Integer rediTimes;
@Bean
@@ -45,16 +48,18 @@ public class RedissonConfig {
//redis://ip:port
//redis的部署方式有单节点部署、主从方式部署、哨兵方式部署、集群方式部署
- //单机模式
- //config.useSingleServer().setAddress("redis://".concat(host).concat(StrConstant.COLON).concat(port));
- //config.useSingleServer().setPassword(password);
- //config.useSingleServer().setConnectTimeout(NumConstant.ONE_THOUSAND * NumConstant.FIVE);
- //config.useSingleServer().setDatabase(NumConstant.TEN);
-
- //集群模式
- config.useClusterServers().addNodeAddress(getClusterNodes());
- config.useClusterServers().setPassword(password);
- config.useClusterServers().setConnectTimeout(NumConstant.ONE_THOUSAND * NumConstant.FIVE);
+ if (clusterEnabled == null || !clusterEnabled) {
+ //单机模式
+ config.useSingleServer().setAddress("redis://".concat(host).concat(StrConstant.COLON).concat(port));
+ config.useSingleServer().setPassword(password);
+ config.useSingleServer().setConnectTimeout(NumConstant.ONE_THOUSAND * NumConstant.FIVE);
+ config.useSingleServer().setDatabase(NumConstant.TEN);
+ } else {
+ //集群模式
+ config.useClusterServers().addNodeAddress(getClusterNodes());
+ config.useClusterServers().setPassword(password);
+ config.useClusterServers().setConnectTimeout(NumConstant.ONE_THOUSAND * NumConstant.FIVE);
+ }
return Redisson.create(config);
} catch (Exception e) {
log.error("初始化redisson失败", e);
diff --git a/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/enums/OssTypeEnum.java b/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/enums/OssTypeEnum.java
index 6bb92ad38b..565500d199 100644
--- a/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/enums/OssTypeEnum.java
+++ b/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/enums/OssTypeEnum.java
@@ -38,7 +38,11 @@ public enum OssTypeEnum {
/**
* minio
*/
- MINIO(6);
+ MINIO(6),
+ /**
+ * 浪潮oss
+ */
+ INSPUR(7);
private int value;
diff --git a/epmet-module/epmet-oss/epmet-oss-server/pom.xml b/epmet-module/epmet-oss/epmet-oss-server/pom.xml
index d4bc4152b6..4b6b580481 100644
--- a/epmet-module/epmet-oss/epmet-oss-server/pom.xml
+++ b/epmet-module/epmet-oss/epmet-oss-server/pom.xml
@@ -96,6 +96,10 @@
minio
8.4.2
+
+ com.inspur
+ oss-sdk
+
diff --git a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/CloudStorageConfig.java b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/CloudStorageConfig.java
index 6b44c47d66..6403bc343a 100644
--- a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/CloudStorageConfig.java
+++ b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/CloudStorageConfig.java
@@ -104,6 +104,7 @@ public class CloudStorageConfig implements Serializable {
private AliyunCloudStorageConfig aliyun;
private MinioStorageConfig minio;
+ private InspurOssConfigProps inspur;
/**
* 阿里云存储配置
*/
@@ -170,4 +171,22 @@ public class CloudStorageConfig implements Serializable {
private String minioPrefix;
private String minioBucketName;
}
+
+ /**
+ * 浪潮政务云oss存储
+ */
+ @Data
+ public static class InspurOssConfigProps {
+ /**
+ * https://oss.cn-north-3.inspurcloudoss.com
+ */
+ private String domain;
+ /**
+ * oss.cn-north-3.inspurcloudoss.com
+ */
+ private String endPoint;
+ private String accessKey;
+ private String secretKey;
+ private String bucketName;
+ }
}
diff --git a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/InspurStorageService.java b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/InspurStorageService.java
new file mode 100644
index 0000000000..8f6862e6a3
--- /dev/null
+++ b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/InspurStorageService.java
@@ -0,0 +1,77 @@
+package com.epmet.cloud;
+
+import com.epmet.commons.tools.exception.EpmetErrorCode;
+import com.epmet.commons.tools.exception.EpmetException;
+import com.epmet.commons.tools.exception.ExceptionUtils;
+import com.inspurcloud.oss.client.impl.OSSClientImpl;
+import lombok.extern.slf4j.Slf4j;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * 浪潮云oss文件操作
+ */
+@Slf4j
+public class InspurStorageService extends AbstractCloudStorageService {
+
+ private CloudStorageConfig.InspurOssConfigProps inspurProps;
+
+ private OSSClientImpl ossClient;
+
+ public InspurStorageService(CloudStorageConfig config) {
+ inspurProps = config.getInspur();
+ //ossClient = new OSSClientImpl("oss.yantai-zww.inspurcloudoss.com",
+ // "OWVmNWZkZDUtMjgzNi00ZDcyLTk5MGUtMmJhNzcxNzE2ZmEx",
+ // "OTQwNGZlZTAtM2RkMS00NTRhLWI5NDYtNTQ4MzJhMDk3YWQ0");
+ ossClient = new OSSClientImpl(inspurProps.getEndPoint(), inspurProps.getAccessKey(), inspurProps.getSecretKey());
+ }
+
+ @Override
+ public String getOssDomain(String privacy) {
+ return inspurProps.getDomain();
+ }
+
+ @Override
+ public String getOssPrefix(String privacy) {
+ return null;
+ }
+
+ @Override
+ public String upload(byte[] data, String path, String privacyType) {
+ return upload(new ByteArrayInputStream(data), path, privacyType);
+ }
+
+ @Override
+ public String uploadSuffix(byte[] data, String suffix, String privacyType) {
+ return uploadSuffix(new ByteArrayInputStream(data), suffix, privacyType);
+ }
+
+ @Override
+ public String upload(InputStream inputStream, String path, String privacyType) {
+ try {
+ ossClient.putObject(inspurProps.getBucketName(), path, inputStream);
+ return inspurProps.getDomain() + "/" + inspurProps.getBucketName() + "/" + path;
+ } catch (Exception e) {
+ String errorStackTrace = ExceptionUtils.getErrorStackTrace(e);
+ log.error("浪潮云oss文件上传:{}", errorStackTrace);
+ throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), errorStackTrace);
+ }
+ }
+
+ @Override
+ public String uploadSuffix(InputStream inputStream, String suffix, String privacyType) {
+ return upload(inputStream, getPath(getOssPrefix(null), suffix, privacyType), privacyType);
+ }
+
+ @Override
+ public void down(String privacyType) throws IOException {
+
+ }
+
+ @Override
+ public boolean delete(String objectName, String privacyType) {
+ return false;
+ }
+}
diff --git a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/OssFactory.java b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/OssFactory.java
index a9113d5fba..59bdf3b7a6 100644
--- a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/OssFactory.java
+++ b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/OssFactory.java
@@ -8,6 +8,7 @@
package com.epmet.cloud;
+import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.enums.OssTypeEnum;
import com.epmet.remote.ParamsRemoteService;
@@ -42,6 +43,8 @@ public final class OssFactory {
abstractCloudStorageService = new LocalCloudStorageService(config);
}else if(config.getType() == OssTypeEnum.MINIO.value()){
abstractCloudStorageService = new MinioStorageService(config);
+ }else if (config.getType() == OssTypeEnum.INSPUR.value()) {
+ abstractCloudStorageService = new InspurStorageService(config);
}
}
return abstractCloudStorageService;
diff --git a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/TestController.java b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/TestController.java
index 50fa2fb21b..a57082c6b7 100644
--- a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/TestController.java
+++ b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/TestController.java
@@ -35,9 +35,9 @@ public class TestController {
}
@PostMapping("upload2aliyun")
- public Result upload2aliyun(@RequestParam("fileName") String fileName) {
- try (final FileInputStream fis = new FileInputStream("/opt/upload_files/" + fileName)) {
- final MockMultipartFile mockMultipartFile = new MockMultipartFile(fileName, fis);
+ public Result upload2aliyun() {
+ try (final FileInputStream fis = new FileInputStream("C:\\Users\\wxz\\Documents\\微信截图_20230101224521.png")) {
+ final MockMultipartFile mockMultipartFile = new MockMultipartFile("微信截图_20230101224521.png", fis);
return ossService.uploadImg(mockMultipartFile, null);
} catch (FileNotFoundException e) {
log.error("method exception", e);
diff --git a/epmet-module/epmet-oss/epmet-oss-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-oss/epmet-oss-server/src/main/resources/bootstrap.yml
index 18ebc7ea24..fa4190e991 100644
--- a/epmet-module/epmet-oss/epmet-oss-server/src/main/resources/bootstrap.yml
+++ b/epmet-module/epmet-oss/epmet-oss-server/src/main/resources/bootstrap.yml
@@ -20,11 +20,13 @@ spring:
date-format: yyyy-MM-dd HH:mm:ss
redis:
# 烟台使用cluster模式下使用cluster:配置段
- # database: @spring.redis.index@
- # host: @spring.redis.host@
- # port: @spring.redis.port@
- # password: @spring.redis.password@
- # timeout: 30s
+ cluster-enabled: true
+
+# database: @spring.redis.index@
+# host: @spring.redis.host@
+# port: @spring.redis.port@
+# password: @spring.redis.password@
+# timeout: 30s
database: @spring.redis.index@
password: @spring.redis.password@
diff --git a/pom.xml b/pom.xml
index 0eb19cb77e..c5724eaf0b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -94,6 +94,11 @@
kotlin-stdlib
1.3.70
+
+ com.inspur
+ oss-sdk
+ 1.1.8
+