From 249a60b215a342cbbfcff56f567c595cd9804f80 Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 10 Sep 2021 16:17:24 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=82=E9=85=8Doss=20=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/tduck/cloud/common/util/EnvEnum.java | 67 +++++++++++++++++++ .../cloud/AliyunOssStorageService.java | 15 +++-- 2 files changed, 76 insertions(+), 6 deletions(-) create mode 100644 tduck-common/src/main/java/com/tduck/cloud/common/util/EnvEnum.java diff --git a/tduck-common/src/main/java/com/tduck/cloud/common/util/EnvEnum.java b/tduck-common/src/main/java/com/tduck/cloud/common/util/EnvEnum.java new file mode 100644 index 0000000..f5f6941 --- /dev/null +++ b/tduck-common/src/main/java/com/tduck/cloud/common/util/EnvEnum.java @@ -0,0 +1,67 @@ +package com.tduck.cloud.common.util; + +import org.springframework.core.env.Environment; + +/** + * 系统环境变量枚举类 + * dev|test|prod + * + * @author jianjun liu + * @date 2020-07-03 11:14 + **/ +public enum EnvEnum { + /** + * 环境变量枚举 + */ + DEV("dev", "开发环境"), + TEST("test", "体验环境"), + PROD("prod", "生产环境") + ; + + private String code; + private String name; + private String url; + + + + EnvEnum(String code, String name) { + this.code = code; + this.name = name; + } + + public static EnvEnum getEnum(String code) { + EnvEnum[] values = EnvEnum.values(); + for (EnvEnum value : values) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + public static EnvEnum getCurrentEnv(){ + try { + Environment environment = SpringContextUtils.getBean(Environment.class); + String[] activeProfiles = environment.getActiveProfiles(); + if (activeProfiles.length > 0) { + return getEnum(activeProfiles[0]); + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + public String getCode() { + return code; + } + + public String getName() { + return name; + } + + public String getUrl(){ + return url; + } +} diff --git a/tduck-storage/src/main/java/com/tduck/cloud/storage/cloud/AliyunOssStorageService.java b/tduck-storage/src/main/java/com/tduck/cloud/storage/cloud/AliyunOssStorageService.java index 4c77662..db1a7e4 100644 --- a/tduck-storage/src/main/java/com/tduck/cloud/storage/cloud/AliyunOssStorageService.java +++ b/tduck-storage/src/main/java/com/tduck/cloud/storage/cloud/AliyunOssStorageService.java @@ -2,6 +2,7 @@ package com.tduck.cloud.storage.cloud; import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; +import com.tduck.cloud.common.util.EnvEnum; import com.tduck.cloud.storage.exception.StorageException; import java.io.ByteArrayInputStream; @@ -16,7 +17,7 @@ import java.io.InputStream; public class AliyunOssStorageService extends OssStorageService { private OSS client; - private static final String baseDir = "survey"; + private static String PREFIX_PATH = "survey/"; public AliyunOssStorageService(OssStorageConfig config) { this.config = config; @@ -25,6 +26,8 @@ public class AliyunOssStorageService extends OssStorageService { } private void init() { + EnvEnum env = EnvEnum.getCurrentEnv(); + PREFIX_PATH = PREFIX_PATH.concat(env.getCode()).concat(File.separator); client = new OSSClientBuilder() .build(config.getEndpoint(), config.getAccessKeyId(), config.getAccessKeySecret()); } @@ -32,23 +35,23 @@ public class AliyunOssStorageService extends OssStorageService { @Override public String upload(InputStream inputStream, String path) { try { - client.putObject(config.getBucketName(), baseDir+ File.separator+path, inputStream); + client.putObject(config.getBucketName(), PREFIX_PATH + path, inputStream); } catch (Exception e) { throw new StorageException("上传文件失败,请检查配置信息", e); } - return config.getDomain() + "/"+baseDir+ "/" + path; + return config.getDomain() + "/" + PREFIX_PATH + path; } @Override public String upload(byte[] data, String path) { try { - client.putObject(config.getBucketName(), baseDir+ File.separator+path, new ByteArrayInputStream(data)); + client.putObject(config.getBucketName(), PREFIX_PATH + path, new ByteArrayInputStream(data)); } catch (Exception e) { throw new StorageException("上传文件失败,请检查配置信息", e); } - return config.getDomain() + "/"+ baseDir+"/" + path; + return config.getDomain() + "/" + PREFIX_PATH + path; } @@ -62,6 +65,6 @@ public class AliyunOssStorageService extends OssStorageService { @Override public void delete(String path) { - client.deleteObject(config.getBucketName(), baseDir+ File.separator+path); + client.deleteObject(config.getBucketName(), PREFIX_PATH + path); } }