Browse Source

oss方法优化

dev_shibei_match
jianjun 4 years ago
parent
commit
86caa3708e
  1. 36
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/AliyunCloudStorageService.java
  2. 17
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/OssFactory.java

36
epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/AliyunCloudStorageService.java

@ -26,10 +26,41 @@ import java.io.InputStream;
*/
public class AliyunCloudStorageService extends AbstractCloudStorageService {
private OSSClient internalClient = null;
private OSSClient externalClient = null;
{
}
public AliyunCloudStorageService(CloudStorageConfig config){
this.config = config;
}
/**
* @Description 根据隐私类型获取属性获取client
* @return
* @author wxz
* @date 2021.01.04 13:49
*/
public OSSClient getOssClient(String privacyType) {
if (PrivacyType.INTERNAL.equalsIgnoreCase(privacyType)) {
if (internalClient == null){
CloudStorageConfig.AliyunCloudStorageConfigProps props = config.getAliyun().getInternal();
internalClient = new OSSClient(props.getAliyunEndPoint(), props.getAliyunAccessKeyId(),
props.getAliyunAccessKeySecret());
}
return internalClient;
} else {
if (externalClient == null) {
CloudStorageConfig.AliyunCloudStorageConfigProps props = config.getAliyun().getExternal();
externalClient = new OSSClient(props.getAliyunEndPoint(), props.getAliyunAccessKeyId(),
props.getAliyunAccessKeySecret());
}
return externalClient;
}
}
/**
* @Description 根据隐私类型获取属性传递internal的时候会返回内部的否则返回外部的即公开的
* @return
@ -69,11 +100,10 @@ public class AliyunCloudStorageService extends AbstractCloudStorageService {
@Override
public String upload(InputStream inputStream, String path, String privacyType) {
CloudStorageConfig.AliyunCloudStorageConfigProps props = getPropsByprivacyType(privacyType);
OSSClient client = new OSSClient(props.getAliyunEndPoint(), props.getAliyunAccessKeyId(),
props.getAliyunAccessKeySecret());
OSSClient client = getOssClient(privacyType);
try {
client.putObject(props.getAliyunBucketName(), path, inputStream);
client.shutdown();
//client.shutdown();
} catch (Exception e){
throw new RenException(ModuleErrorCode.OSS_UPLOAD_FILE_ERROR, e, "");
}

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

@ -20,28 +20,29 @@ import com.epmet.utils.ModuleConstant;
*/
public final class OssFactory {
private static ParamsRemoteService paramsRemoteService;
private static AbstractCloudStorageService abstractCloudStorageService;
static {
OssFactory.paramsRemoteService = SpringContextUtils.getBean(ParamsRemoteService.class);
}
public static AbstractCloudStorageService build(){
if (abstractCloudStorageService == null){
//获取云存储配置信息
CloudStorageConfig config = paramsRemoteService.getValueObject(ModuleConstant.CLOUD_STORAGE_CONFIG_KEY, CloudStorageConfig.class);
if(config.getType() == OssTypeEnum.QINIU.value()){
return new QiniuCloudStorageService(config);
abstractCloudStorageService = new QiniuCloudStorageService(config);
}else if(config.getType() == OssTypeEnum.ALIYUN.value()){
return new AliyunCloudStorageService(config);
abstractCloudStorageService = new AliyunCloudStorageService(config);
}else if(config.getType() == OssTypeEnum.QCLOUD.value()){
return new QcloudCloudStorageService(config);
abstractCloudStorageService = new QcloudCloudStorageService(config);
}else if(config.getType() == OssTypeEnum.FASTDFS.value()){
return new FastDFSCloudStorageService(config);
abstractCloudStorageService = new FastDFSCloudStorageService(config);
}else if(config.getType() == OssTypeEnum.LOCAL.value()){
return new LocalCloudStorageService(config);
abstractCloudStorageService = new LocalCloudStorageService(config);
}
return null;
}
return abstractCloudStorageService;
}
}

Loading…
Cancel
Save