Browse Source

增加浪潮oss相关代码

feature/evaluate
wxz 3 years ago
parent
commit
e133c7df31
  1. 19
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/RedissonConfig.java
  2. 6
      epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/enums/OssTypeEnum.java
  3. 4
      epmet-module/epmet-oss/epmet-oss-server/pom.xml
  4. 19
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/CloudStorageConfig.java
  5. 77
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/InspurStorageService.java
  6. 3
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/OssFactory.java
  7. 6
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/TestController.java
  8. 12
      epmet-module/epmet-oss/epmet-oss-server/src/main/resources/bootstrap.yml
  9. 5
      pom.xml

19
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; package com.epmet.commons.tools.config;
import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.redisson.Redisson; import org.redisson.Redisson;
@ -18,6 +19,8 @@ import org.springframework.context.annotation.Configuration;
@Configuration @Configuration
public class RedissonConfig { public class RedissonConfig {
@Value("${spring.redis.cluster-enabled}")
private Boolean clusterEnabled;
@Value("${spring.redis.host}") @Value("${spring.redis.host}")
private String host; private String host;
@Value("${spring.redis.port}") @Value("${spring.redis.port}")
@ -26,8 +29,8 @@ public class RedissonConfig {
private String password; private String password;
@Value("${spring.redis.cluster.nodes}") @Value("${spring.redis.cluster.nodes}")
private String clusterNodesStr; private String clusterNodesStr;
@Value("${spring.redis.cluster.max-redirects}") // @Value("${spring.redis.cluster.max-redirects}")
private Integer rediTimes; // private Integer rediTimes;
@Bean @Bean
@ -45,16 +48,18 @@ public class RedissonConfig {
//redis://ip:port //redis://ip:port
//redis的部署方式有单节点部署、主从方式部署、哨兵方式部署、集群方式部署 //redis的部署方式有单节点部署、主从方式部署、哨兵方式部署、集群方式部署
if (clusterEnabled == null || !clusterEnabled) {
//单机模式 //单机模式
//config.useSingleServer().setAddress("redis://".concat(host).concat(StrConstant.COLON).concat(port)); config.useSingleServer().setAddress("redis://".concat(host).concat(StrConstant.COLON).concat(port));
//config.useSingleServer().setPassword(password); config.useSingleServer().setPassword(password);
//config.useSingleServer().setConnectTimeout(NumConstant.ONE_THOUSAND * NumConstant.FIVE); config.useSingleServer().setConnectTimeout(NumConstant.ONE_THOUSAND * NumConstant.FIVE);
//config.useSingleServer().setDatabase(NumConstant.TEN); config.useSingleServer().setDatabase(NumConstant.TEN);
} else {
//集群模式 //集群模式
config.useClusterServers().addNodeAddress(getClusterNodes()); config.useClusterServers().addNodeAddress(getClusterNodes());
config.useClusterServers().setPassword(password); config.useClusterServers().setPassword(password);
config.useClusterServers().setConnectTimeout(NumConstant.ONE_THOUSAND * NumConstant.FIVE); config.useClusterServers().setConnectTimeout(NumConstant.ONE_THOUSAND * NumConstant.FIVE);
}
return Redisson.create(config); return Redisson.create(config);
} catch (Exception e) { } catch (Exception e) {
log.error("初始化redisson失败", e); log.error("初始化redisson失败", e);

6
epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/enums/OssTypeEnum.java

@ -38,7 +38,11 @@ public enum OssTypeEnum {
/** /**
* minio * minio
*/ */
MINIO(6); MINIO(6),
/**
* 浪潮oss
*/
INSPUR(7);
private int value; private int value;

4
epmet-module/epmet-oss/epmet-oss-server/pom.xml

@ -96,6 +96,10 @@
<artifactId>minio</artifactId> <artifactId>minio</artifactId>
<version>8.4.2</version> <version>8.4.2</version>
</dependency> </dependency>
<dependency>
<groupId>com.inspur</groupId>
<artifactId>oss-sdk</artifactId>
</dependency>
</dependencies> </dependencies>
<build> <build>

19
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 AliyunCloudStorageConfig aliyun;
private MinioStorageConfig minio; private MinioStorageConfig minio;
private InspurOssConfigProps inspur;
/** /**
* 阿里云存储配置 * 阿里云存储配置
*/ */
@ -170,4 +171,22 @@ public class CloudStorageConfig implements Serializable {
private String minioPrefix; private String minioPrefix;
private String minioBucketName; 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;
}
} }

77
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;
}
}

3
epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/OssFactory.java

@ -8,6 +8,7 @@
package com.epmet.cloud; package com.epmet.cloud;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.utils.SpringContextUtils; import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.enums.OssTypeEnum; import com.epmet.enums.OssTypeEnum;
import com.epmet.remote.ParamsRemoteService; import com.epmet.remote.ParamsRemoteService;
@ -42,6 +43,8 @@ public final class OssFactory {
abstractCloudStorageService = new LocalCloudStorageService(config); abstractCloudStorageService = new LocalCloudStorageService(config);
}else if(config.getType() == OssTypeEnum.MINIO.value()){ }else if(config.getType() == OssTypeEnum.MINIO.value()){
abstractCloudStorageService = new MinioStorageService(config); abstractCloudStorageService = new MinioStorageService(config);
}else if (config.getType() == OssTypeEnum.INSPUR.value()) {
abstractCloudStorageService = new InspurStorageService(config);
} }
} }
return abstractCloudStorageService; return abstractCloudStorageService;

6
epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/TestController.java

@ -35,9 +35,9 @@ public class TestController {
} }
@PostMapping("upload2aliyun") @PostMapping("upload2aliyun")
public Result upload2aliyun(@RequestParam("fileName") String fileName) { public Result upload2aliyun() {
try (final FileInputStream fis = new FileInputStream("/opt/upload_files/" + fileName)) { try (final FileInputStream fis = new FileInputStream("C:\\Users\\wxz\\Documents\\微信截图_20230101224521.png")) {
final MockMultipartFile mockMultipartFile = new MockMultipartFile(fileName, fis); final MockMultipartFile mockMultipartFile = new MockMultipartFile("微信截图_20230101224521.png", fis);
return ossService.uploadImg(mockMultipartFile, null); return ossService.uploadImg(mockMultipartFile, null);
} catch (FileNotFoundException e) { } catch (FileNotFoundException e) {
log.error("method exception", e); log.error("method exception", e);

12
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 date-format: yyyy-MM-dd HH:mm:ss
redis: redis:
# 烟台使用cluster模式下使用cluster:配置段 # 烟台使用cluster模式下使用cluster:配置段
# database: @spring.redis.index@ cluster-enabled: true
# host: @spring.redis.host@
# port: @spring.redis.port@ # database: @spring.redis.index@
# password: @spring.redis.password@ # host: @spring.redis.host@
# timeout: 30s # port: @spring.redis.port@
# password: @spring.redis.password@
# timeout: 30s
database: @spring.redis.index@ database: @spring.redis.index@
password: @spring.redis.password@ password: @spring.redis.password@

5
pom.xml

@ -94,6 +94,11 @@
<artifactId>kotlin-stdlib</artifactId> <artifactId>kotlin-stdlib</artifactId>
<version>1.3.70</version> <version>1.3.70</version>
</dependency> </dependency>
<dependency>
<groupId>com.inspur</groupId>
<artifactId>oss-sdk</artifactId>
<version>1.1.8</version>
</dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>

Loading…
Cancel
Save