Browse Source

oss返回domain域名用于替换

dev_shibei_match
jianjun 4 years ago
parent
commit
83c152008f
  1. 12
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java
  2. 6
      epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/dto/result/UploadImgResultDTO.java
  3. 12
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/AbstractCloudStorageService.java
  4. 19
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/AliyunCloudStorageService.java
  5. 11
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/OssController.java
  6. 8
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/impl/OssServiceImpl.java

12
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java

@ -386,4 +386,16 @@ public class RedisKeys {
public static String getResiUserBadgeKey(String customerId, String userId) { public static String getResiUserBadgeKey(String customerId, String userId) {
return rootPrefix.concat("badge:user:").concat(customerId).concat(":").concat(StringUtils.isBlank(userId) ? "*" : userId); return rootPrefix.concat("badge:user:").concat(customerId).concat(":").concat(StringUtils.isBlank(userId) ? "*" : userId);
} }
/**
* desc: 根据文件路径获取oss 文件缓存key
*
* @param path
* @return java.lang.String
* @author LiuJanJun
* @date 2021/3/30 9:56 上午
*/
public static String getOssFileKey(String path) {
return rootPrefix.concat("oss:temp:").concat(path);
}
} }

6
epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/dto/result/UploadImgResultDTO.java

@ -1,5 +1,6 @@
package com.epmet.dto.result; package com.epmet.dto.result;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@ -12,4 +13,9 @@ import java.io.Serializable;
@Data @Data
public class UploadImgResultDTO implements Serializable { public class UploadImgResultDTO implements Serializable {
private String url; private String url;
/**
* 域名
*/
@JsonIgnore
private String domain;
} }

12
epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/AbstractCloudStorageService.java

@ -25,7 +25,17 @@ import java.util.UUID;
public abstract class AbstractCloudStorageService { public abstract class AbstractCloudStorageService {
/** 云存储配置信息 */ /** 云存储配置信息 */
CloudStorageConfig config; CloudStorageConfig config;
/**
* desc: 获取oss域名
*
* @param privacy
* @return java.lang.String
* @author LiuJanJun
* @date 2021/3/30 10:05 上午
*/
public String getOssDomain(String privacy){
return null;
};
/** /**
* 文件路径 * 文件路径
* @param prefix 前缀 * @param prefix 前缀

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

@ -36,7 +36,7 @@ public class AliyunCloudStorageService extends AbstractCloudStorageService {
* @author wxz * @author wxz
* @date 2021.01.04 13:49 * @date 2021.01.04 13:49
*/ */
private CloudStorageConfig.AliyunCloudStorageConfigProps getPropsByprivacyType(String privacyType) { public CloudStorageConfig.AliyunCloudStorageConfigProps getPropsByprivacyType(String privacyType) {
if (PrivacyType.INTERNAL.equalsIgnoreCase(privacyType)) { if (PrivacyType.INTERNAL.equalsIgnoreCase(privacyType)) {
return config.getAliyun().getInternal(); return config.getAliyun().getInternal();
} else { } else {
@ -44,6 +44,23 @@ public class AliyunCloudStorageService extends AbstractCloudStorageService {
} }
} }
/**
* desc: 获取oss域名
*
* @param privacy
* @return java.lang.String
* @author LiuJanJun
* @date 2021/3/30 10:05 上午
*/
@Override
public String getOssDomain(String privacy) {
if (PrivacyType.INTERNAL.equalsIgnoreCase(privacy)) {
return config.getAliyun().getInternal().getAliyunDomain();
} else {
return config.getAliyun().getExternal().getAliyunDomain();
}
}
@Override @Override
public String upload(byte[] data, String path, String privacyType) { public String upload(byte[] data, String path, String privacyType) {
return upload(new ByteArrayInputStream(data), path, privacyType); return upload(new ByteArrayInputStream(data), path, privacyType);

11
epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/OssController.java

@ -11,9 +11,11 @@ package com.epmet.controller;
import com.epmet.cloud.CloudStorageConfig; import com.epmet.cloud.CloudStorageConfig;
import com.epmet.cloud.OssFactory; import com.epmet.cloud.OssFactory;
import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
@ -33,6 +35,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.entity.ContentType; import org.apache.http.entity.ContentType;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
@ -246,6 +249,14 @@ public class OssController {
, EpmetErrorCode.OPER_UPLOAD_FILE_OVER_SIZE.getMsg()); , EpmetErrorCode.OPER_UPLOAD_FILE_OVER_SIZE.getMsg());
} }
} }
Result<UploadImgResultDTO> result = ossService.uploadImg(file, null);
if (result != null && result.success() ){
UploadImgResultDTO data = result.getData();
if ( data!= null && StringUtils.isNotBlank(data.getUrl())){
String path = data.getUrl().replace(data.getUrl(), StrConstant.EPMETY_STR);
redisUtils.set(RedisKeys.getOssFileKey(path),path,RedisUtils.MINUTE_THIRTY_EXPIRE);
}
}
return ossService.uploadImg(file, null); return ossService.uploadImg(file, null);
} }

8
epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/impl/OssServiceImpl.java

@ -10,6 +10,7 @@ package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.cloud.AbstractCloudStorageService;
import com.epmet.cloud.OssFactory; import com.epmet.cloud.OssFactory;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.Constant; import com.epmet.commons.tools.constant.Constant;
@ -56,8 +57,11 @@ public class OssServiceImpl extends BaseServiceImpl<OssDao, OssEntity> implement
//上传文件 //上传文件
String extension = FilenameUtils.getExtension(file.getOriginalFilename()); String extension = FilenameUtils.getExtension(file.getOriginalFilename());
String url = null; String url = null;
String ossDomain = null;
try { try {
url = OssFactory.build().uploadSuffix(file.getBytes(), extension, privacy); AbstractCloudStorageService storageService = OssFactory.build();
url = storageService.uploadSuffix(file.getBytes(), extension, privacy);
ossDomain = storageService.getOssDomain(privacy);
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
logger.error("图片上传异常"); logger.error("图片上传异常");
@ -67,10 +71,12 @@ public class OssServiceImpl extends BaseServiceImpl<OssDao, OssEntity> implement
//保存文件信息 //保存文件信息
OssEntity ossEntity = new OssEntity(); OssEntity ossEntity = new OssEntity();
ossEntity.setUrl(url); ossEntity.setUrl(url);
baseDao.insert(ossEntity); baseDao.insert(ossEntity);
//文件信息 //文件信息
UploadImgResultDTO dto = new UploadImgResultDTO(); UploadImgResultDTO dto = new UploadImgResultDTO();
dto.setUrl(url); dto.setUrl(url);
dto.setDomain(ossDomain);
return new Result<UploadImgResultDTO>().ok(dto); return new Result<UploadImgResultDTO>().ok(dto);
} }

Loading…
Cancel
Save