Browse Source

Merge remote-tracking branch 'remotes/origin/dev_voice_attachment' into dev_temp

master
jianjun 4 years ago
parent
commit
da542c9c67
  1. 16
      epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/dto/result/RemoveFileResultDTO.java
  2. 2
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/AliyunCloudStorageService.java
  3. 13
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/OssController.java
  4. 33
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/impl/OssServiceImpl.java

16
epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/dto/result/RemoveFileResultDTO.java

@ -1,16 +0,0 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2021/3/30 9:52
*/
@Data
public class RemoveFileResultDTO implements Serializable {
private static final long serialVersionUID = 6509372741520843201L;
private Boolean delSuccess;
}

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

@ -87,7 +87,7 @@ public class AliyunCloudStorageService extends AbstractCloudStorageService {
OSSClient client = new OSSClient(props.getAliyunEndPoint(), props.getAliyunAccessKeyId(),
props.getAliyunAccessKeySecret());
try {
client.deleteObject(props.getAliyunBucketName(), props.getAliyunPrefix() + objectName);
client.deleteObject(props.getAliyunBucketName(), objectName);
client.shutdown();
} catch (Exception e){
return false;

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

@ -24,7 +24,6 @@ import com.epmet.commons.tools.validator.group.QcloudGroup;
import com.epmet.commons.tools.validator.group.QiniuGroup;
import com.epmet.dto.UploadDTO;
import com.epmet.dto.form.RemoveFileFormDTO;
import com.epmet.dto.result.RemoveFileResultDTO;
import com.epmet.dto.result.UploadImgResultDTO;
import com.epmet.entity.OssEntity;
import com.epmet.enums.OssTypeEnum;
@ -241,7 +240,6 @@ public class OssController {
throw new RenException(EpmetErrorCode.OPER_UPLOAD_FILE_OVER_SIZE.getCode()
, EpmetErrorCode.OPER_UPLOAD_FILE_OVER_SIZE.getMsg());
}
//todo 获取url 缓存半小时 删除时获取并调用删除方法
} else {
// 校验文件体积,不超过2m
long maxSize = 2 * 1024 * 1024;
@ -255,7 +253,10 @@ public class OssController {
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);
String path = data.getUrl().replace(data.getDomain(), StrConstant.EPMETY_STR);
if (path.startsWith(StrConstant.SEPARATOR)){
path = path.replaceFirst(StrConstant.SEPARATOR,StrConstant.EPMETY_STR);
}
redisUtils.set(RedisKeys.getOssFileKey(path),path,RedisUtils.MINUTE_THIRTY_EXPIRE);
}
}
@ -357,10 +358,8 @@ public class OssController {
}
@PostMapping("article/remove/file")
public Result<RemoveFileResultDTO> articleRemoveFile(@RequestBody RemoveFileFormDTO formDTO) {
RemoveFileResultDTO resultDTO = new RemoveFileResultDTO();
resultDTO.setDelSuccess(ossService.articleRemoveFile(formDTO));
return new Result<RemoveFileResultDTO>().ok(resultDTO);
public Result<Boolean> articleRemoveFile(@RequestBody RemoveFileFormDTO formDTO) {
return new Result<Boolean>().ok(ossService.articleRemoveFile(formDTO));
}
}

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

@ -20,7 +20,6 @@ import com.epmet.commons.tools.exception.RenException;
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.utils.DateUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constants.PrivacyType;
import com.epmet.dao.OssDao;
@ -37,9 +36,7 @@ import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.Date;
import java.util.Map;
import java.util.Objects;
@Service
public class OssServiceImpl extends BaseServiceImpl<OssDao, OssEntity> implements OssService {
@ -194,22 +191,24 @@ public class OssServiceImpl extends BaseServiceImpl<OssDao, OssEntity> implement
@Override
public boolean articleRemoveFile(RemoveFileFormDTO formDTO) {
logger.info("articleRemoveFile param:{}", JSON.toJSONString(formDTO));
String[] strings = formDTO.getUrl().split(StrConstant.SEPARATOR);
String fileName = strings[strings.length - 1];
AbstractCloudStorageService build = OssFactory.build();
String ossDomain = build.getOssDomain(null);
String fileName = formDTO.getUrl().replace(ossDomain, StrConstant.EPMETY_STR);
if (fileName.startsWith(StrConstant.SEPARATOR)){
fileName = fileName.replaceFirst(StrConstant.SEPARATOR,StrConstant.EPMETY_STR);
}
String key = RedisKeys.getOssFileKey(fileName);
Object o = redisUtils.get(key);
if (o == null){
//return false;
}
logger.info("articleRemoveFile oss delete fileName:{}", fileName);
OssFactory.build().delete(fileName,null);
OssEntity entity = baseDao.selectByUrl(formDTO.getUrl());
long thirty = 30*60*1000;
Date now = new Date();
long time = now.getTime() - entity.getCreatedTime().getTime();
if (time > thirty) {
return false;
if (entity != null){
baseDao.deleteDataById(entity.getId());
}
baseDao.deleteDataById(entity.getId());
String dateStr = DateUtils.format(entity.getCreatedTime(), DateUtils.DATE_PATTERN_YYYYMMDD);
fileName = StrConstant.SEPARATOR + dateStr + StrConstant.SEPARATOR + fileName;
String key = RedisKeys.getOssFileKey(formDTO.getUrl());
redisUtils.delete(key);
logger.info("articleRemoveFile oss delete fileName:{}", JSON.toJSONString(fileName));
return Objects.requireNonNull(OssFactory.build()).delete(fileName,null);
return true;
}

Loading…
Cancel
Save