Procházet zdrojové kódy

cos删除对象接口

tsurumure před 8 měsíci
rodič
revize
80e8b4e898

+ 1 - 1
src/main/java/com/backendsys/controller/TestController.java

@@ -481,7 +481,7 @@ public class TestController {
 
         if (listData.size() == 0 || (listData.size() > 0 && listData.get(0).toString().equals(taskId))) {
 
-            // 创建一个CompletableFuture来执行异步任务
+            // 创建一个 CompletableFuture 来执行异步任务
             CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
                 // 执行业务逻辑
                 System.out.println("开始休眠..");

+ 1 - 1
src/main/java/com/backendsys/exception/GlobalExceptionHandler.java

@@ -122,7 +122,7 @@ public class GlobalExceptionHandler implements ResponseBodyAdvice<Object> {
                 // --- 向钉钉发送消息 -----------------------------------
                 // (本地环境不触发)
                 if (!"localhost".equals(serverName)) {
-                    // 创建一个CompletableFuture来执行异步任务
+                    // 创建一个 CompletableFuture 来执行异步任务
                     CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
                         try {
                             String message = "【系统异常】:" + e.getMessage() + "\n" +

+ 3 - 0
src/main/java/com/backendsys/modules/sdk/tencent/cos/service/TencentCosService.java

@@ -15,6 +15,9 @@ public interface TencentCosService {
     // [腾讯云COS] 查询对象是否存在
     boolean doesObjectExist(String object_key);
 
+    // [腾讯云COS] 删除对象
+    void deleteObject(String object_key);
+
     // [腾讯云COS] 获得临时图片地址
     URL generateUrl(String object_key, Integer minutes);
 }

+ 13 - 2
src/main/java/com/backendsys/modules/sdk/tencent/cos/service/impl/TencentCosServiceImpl.java

@@ -205,17 +205,28 @@ public class TencentCosServiceImpl implements TencentCosService {
     @Override
     public boolean doesObjectExist(String object_key) {
         COSClient cosClient = getClient();
-        return cosClient.doesObjectExist(BUCKET_NAME, object_key);
+        boolean isExist = cosClient.doesObjectExist(BUCKET_NAME, object_key);
+        cosClient.shutdown();
+        return isExist;
     }
 
+    // [腾讯云COS] 删除对象
+    @Override
+    public void deleteObject(String object_key) {
+        COSClient cosClient = getClient();
+        cosClient.deleteObject(BUCKET_NAME, object_key);
+        cosClient.shutdown();
+    }
 
     @Override
     public URL generateUrl(String object_key, Integer minutes) {
         // 生成临时访问的URL (15分钟)
+        COSClient cosClient = getClient();
         GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(BUCKET_NAME, object_key, HttpMethodName.GET);
         Date expirationDate = new DateTime().plusMinutes(minutes).toDate();
         request.setExpiration(expirationDate);
-        URL url = getClient().generatePresignedUrl(request);
+        URL url = cosClient.generatePresignedUrl(request);
+        cosClient.shutdown();
         return url;
     }
 }

+ 17 - 6
src/main/java/com/backendsys/modules/upload/service/impl/SysUploadServiceImpl.java

@@ -24,6 +24,7 @@ import org.springframework.web.multipart.MultipartFile;
 import java.io.IOException;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.CompletableFuture;
 
 @Service
 public class SysUploadServiceImpl implements SysUploadService {
@@ -41,6 +42,7 @@ public class SysUploadServiceImpl implements SysUploadService {
     /**
      * 获取上传文件列表
      */
+    @Override
     public PageEntity selectUploadList(SysUpload sysUpload) {
         PageUtils.startPage();  // 分页
         List<SysUpload> list = sysUploadDao.selectList(new QueryWrapper<SysUpload>().setEntity(sysUpload));
@@ -50,15 +52,24 @@ public class SysUploadServiceImpl implements SysUploadService {
     /**
      * 删除上传文件
      */
+    @Override
     public Map<String, Object> removeUploadFile(SysUpload sysUpload) {
 
-        System.out.println(sysUpload);
-
-        // 查询对象是否存在
-        Boolean isObjectExist = tencentCosService.doesObjectExist(sysUpload.getObject_key());
-
         // [Delete] 删除文件记录
-//        sysUploadDao.delete(new LambdaQueryWrapper<SysUpload>().eq(SysUpload::getObject_key, sysUpload.getObject_key()));
+        SysUpload entity = sysUploadDao.selectOne(new LambdaQueryWrapper<SysUpload>().eq(SysUpload::getObject_key, sysUpload.getObject_key()));
+        if (entity != null) {
+            sysUploadDao.delete(new LambdaQueryWrapper<SysUpload>().eq(SysUpload::getObject_key, sysUpload.getObject_key()));
+        }
+
+        // [异步任务] 创建一个 CompletableFuture 来执行异步任务
+        CompletableFuture.runAsync(() -> {
+            // [腾讯云] 删除对象
+            Boolean isObjectExist = tencentCosService.doesObjectExist(sysUpload.getObject_key());
+            if (isObjectExist) {
+                tencentCosService.deleteObject(sysUpload.getObject_key());
+                System.out.println("Delete cos object: " + sysUpload.getObject_key());
+            }
+        });
 
         return Map.of("object_key", sysUpload.getObject_key());
     }