From 366ee1edfdaa64127b535b5e3acd8e0e45ff312a Mon Sep 17 00:00:00 2001 From: jianjun Date: Tue, 30 Mar 2021 17:02:07 +0800 Subject: [PATCH] =?UTF-8?q?oss=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dto/result/RemoveFileResultDTO.java | 16 --------- .../cloud/AliyunCloudStorageService.java | 2 +- .../com/epmet/controller/OssController.java | 13 ++++---- .../epmet/service/impl/OssServiceImpl.java | 33 +++++++++---------- 4 files changed, 23 insertions(+), 41 deletions(-) delete mode 100644 epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/dto/result/RemoveFileResultDTO.java diff --git a/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/dto/result/RemoveFileResultDTO.java b/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/dto/result/RemoveFileResultDTO.java deleted file mode 100644 index e8a39a8a96..0000000000 --- a/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/dto/result/RemoveFileResultDTO.java +++ /dev/null @@ -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; -} diff --git a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/AliyunCloudStorageService.java b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/AliyunCloudStorageService.java index 4938319ecd..151e70f979 100644 --- a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/AliyunCloudStorageService.java +++ b/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; diff --git a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/OssController.java b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/OssController.java index 53c8befb84..be8513438e 100644 --- a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/OssController.java +++ b/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 articleRemoveFile(@RequestBody RemoveFileFormDTO formDTO) { - RemoveFileResultDTO resultDTO = new RemoveFileResultDTO(); - resultDTO.setDelSuccess(ossService.articleRemoveFile(formDTO)); - return new Result().ok(resultDTO); + public Result articleRemoveFile(@RequestBody RemoveFileFormDTO formDTO) { + return new Result().ok(ossService.articleRemoveFile(formDTO)); } } diff --git a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/impl/OssServiceImpl.java b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/impl/OssServiceImpl.java index 03e30b4da3..83eeb2949d 100644 --- a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/impl/OssServiceImpl.java +++ b/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 implements OssService { @@ -194,22 +191,24 @@ public class OssServiceImpl extends BaseServiceImpl 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; }