Browse Source

适配oss 文件

dev
jianjun 4 years ago
parent
commit
249a60b215
  1. 67
      tduck-common/src/main/java/com/tduck/cloud/common/util/EnvEnum.java
  2. 15
      tduck-storage/src/main/java/com/tduck/cloud/storage/cloud/AliyunOssStorageService.java

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

15
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);
}
}

Loading…
Cancel
Save