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 { public class AliyunCloudStorageService extends AbstractCloudStorageService {
private OSSClient internalClient = null;
private OSSClient externalClient = null;
{
}
public AliyunCloudStorageService(CloudStorageConfig config){ public AliyunCloudStorageService(CloudStorageConfig config){
this.config = 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的时候会返回内部的否则返回外部的即公开的 * @Description 根据隐私类型获取属性传递internal的时候会返回内部的否则返回外部的即公开的
* @return * @return
@ -69,11 +100,10 @@ public class AliyunCloudStorageService extends AbstractCloudStorageService {
@Override @Override
public String upload(InputStream inputStream, String path, String privacyType) { public String upload(InputStream inputStream, String path, String privacyType) {
CloudStorageConfig.AliyunCloudStorageConfigProps props = getPropsByprivacyType(privacyType); CloudStorageConfig.AliyunCloudStorageConfigProps props = getPropsByprivacyType(privacyType);
OSSClient client = new OSSClient(props.getAliyunEndPoint(), props.getAliyunAccessKeyId(), OSSClient client = getOssClient(privacyType);
props.getAliyunAccessKeySecret());
try { try {
client.putObject(props.getAliyunBucketName(), path, inputStream); client.putObject(props.getAliyunBucketName(), path, inputStream);
client.shutdown(); //client.shutdown();
} catch (Exception e){ } catch (Exception e){
throw new RenException(ModuleErrorCode.OSS_UPLOAD_FILE_ERROR, 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 { public final class OssFactory {
private static ParamsRemoteService paramsRemoteService; private static ParamsRemoteService paramsRemoteService;
private static AbstractCloudStorageService abstractCloudStorageService;
static { static {
OssFactory.paramsRemoteService = SpringContextUtils.getBean(ParamsRemoteService.class); OssFactory.paramsRemoteService = SpringContextUtils.getBean(ParamsRemoteService.class);
} }
public static AbstractCloudStorageService build(){ public static AbstractCloudStorageService build(){
if (abstractCloudStorageService == null){
//获取云存储配置信息 //获取云存储配置信息
CloudStorageConfig config = paramsRemoteService.getValueObject(ModuleConstant.CLOUD_STORAGE_CONFIG_KEY, CloudStorageConfig.class); CloudStorageConfig config = paramsRemoteService.getValueObject(ModuleConstant.CLOUD_STORAGE_CONFIG_KEY, CloudStorageConfig.class);
if(config.getType() == OssTypeEnum.QINIU.value()){ if(config.getType() == OssTypeEnum.QINIU.value()){
return new QiniuCloudStorageService(config); abstractCloudStorageService = new QiniuCloudStorageService(config);
}else if(config.getType() == OssTypeEnum.ALIYUN.value()){ }else if(config.getType() == OssTypeEnum.ALIYUN.value()){
return new AliyunCloudStorageService(config); abstractCloudStorageService = new AliyunCloudStorageService(config);
}else if(config.getType() == OssTypeEnum.QCLOUD.value()){ }else if(config.getType() == OssTypeEnum.QCLOUD.value()){
return new QcloudCloudStorageService(config); abstractCloudStorageService = new QcloudCloudStorageService(config);
}else if(config.getType() == OssTypeEnum.FASTDFS.value()){ }else if(config.getType() == OssTypeEnum.FASTDFS.value()){
return new FastDFSCloudStorageService(config); abstractCloudStorageService = new FastDFSCloudStorageService(config);
}else if(config.getType() == OssTypeEnum.LOCAL.value()){ }else if(config.getType() == OssTypeEnum.LOCAL.value()){
return new LocalCloudStorageService(config); abstractCloudStorageService = new LocalCloudStorageService(config);
} }
}
return null; return abstractCloudStorageService;
} }
} }

Loading…
Cancel
Save