From 1953daf321492dfc18b7a266282d5cd0b568dc68 Mon Sep 17 00:00:00 2001
From: Xiajijian <1176061145@qq.com>
Date: Wed, 29 Oct 2025 08:47:15 +0800
Subject: [PATCH] 1.增加minio文件删除-指定桶,接口。
---
ard-oss/src/main/java/com/ard/oss/service/impl/MinIOServiceImpl.java | 25 ++++++++++++++++++++-----
ard-admin/src/main/java/com/ard/web/controller/storage/FileUploadController.java | 18 ++++++++++++++++++
ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInformationServiceImpl.java | 9 +++++++++
3 files changed, 47 insertions(+), 5 deletions(-)
diff --git a/ard-admin/src/main/java/com/ard/web/controller/storage/FileUploadController.java b/ard-admin/src/main/java/com/ard/web/controller/storage/FileUploadController.java
index c1abb0a..208e64b 100644
--- a/ard-admin/src/main/java/com/ard/web/controller/storage/FileUploadController.java
+++ b/ard-admin/src/main/java/com/ard/web/controller/storage/FileUploadController.java
@@ -66,4 +66,22 @@
}
}
+ /**
+ * minio文件删除-指定桶
+ */
+ @ApiOperation("minio文件删除-指定桶")
+ @DeleteMapping("/deleteMinio/{bucketName}")
+ public AjaxResult deleteKmzFile(@PathVariable String bucketName,
+ @RequestParam String filePath) {
+ try {
+ boolean result = ossService.deleteObject(bucketName, filePath);
+ if (result) {
+ return AjaxResult.success("文件删除成功");
+ } else {
+ return AjaxResult.error("文件删除失败");
+ }
+ } catch (Exception e) {
+ return AjaxResult.error("删除文件失败: " + e.getMessage());
+ }
+ }
}
diff --git a/ard-oss/src/main/java/com/ard/oss/service/impl/MinIOServiceImpl.java b/ard-oss/src/main/java/com/ard/oss/service/impl/MinIOServiceImpl.java
index 5097bce..e38cfb0 100644
--- a/ard-oss/src/main/java/com/ard/oss/service/impl/MinIOServiceImpl.java
+++ b/ard-oss/src/main/java/com/ard/oss/service/impl/MinIOServiceImpl.java
@@ -127,13 +127,28 @@
@Override
public Boolean deleteObject(String bucket, String objectKey) {
try {
- client.removeObject(RemoveObjectArgs.builder().bucket(bucket).object(objectKey).build());
- } catch (MinioException | NoSuchAlgorithmException | IOException | InvalidKeyException e) {
- log.error("Failed to delete file.");
- e.printStackTrace();
+ // 检查文件是否存在
+ client.statObject(StatObjectArgs.builder()
+ .bucket(bucket)
+ .object(objectKey)
+ .build());
+
+ // 文件存在,执行删除
+ client.removeObject(RemoveObjectArgs.builder()
+ .bucket(bucket)
+ .object(objectKey)
+ .build());
+
+ log.info("成功删除文件: {}/{}", bucket, objectKey);
+ return true;
+ } catch (ErrorResponseException e) {
+ // 文件不存在的情况
+ log.warn("文件不存在: {}/{}", bucket, objectKey);
return false;
+ } catch (Exception e) {
+ log.error("删除文件失败: {}/{}", bucket, objectKey, e);
+ throw new RuntimeException("删除文件失败: " + e.getMessage(), e);
}
- return true;
}
@Override
diff --git a/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInformationServiceImpl.java b/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInformationServiceImpl.java
index a05968e..fcb9d7d 100644
--- a/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInformationServiceImpl.java
+++ b/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInformationServiceImpl.java
@@ -3,6 +3,7 @@
import java.util.List;
import com.ard.common.utils.DateUtils;
import com.ard.common.utils.uuid.IdUtils;
+import com.ard.oss.service.impl.OssServiceContext;
import com.ard.route.domain.route.ArdRouteInformation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -20,6 +21,9 @@
@Autowired
private ArdRouteInformationMapper ardRouteInformationMapper;
+
+ @Autowired
+ private OssServiceContext ossService;
/**
* 查询航线(kmz)
@@ -76,6 +80,11 @@
*/
@Override
public int deleteArdRouteInformationByIds(String[] ids) {
+ // 删除航线(kmz)文件
+ for (String id : ids) {
+ ArdRouteInformation information = ardRouteInformationMapper.selectArdRouteInformationById(id);
+ ossService.deleteObject("kmz", information.getUpPath());
+ }
return ardRouteInformationMapper.deleteArdRouteInformationByIds(ids);
}
--
Gitblit v1.9.3