diff --git a/par-api/src/main/java/com/par/api/controller/AdminController.java b/par-api/src/main/java/com/par/api/controller/AdminController.java index 44ad570..41a8408 100644 --- a/par-api/src/main/java/com/par/api/controller/AdminController.java +++ b/par-api/src/main/java/com/par/api/controller/AdminController.java @@ -135,6 +135,10 @@ public class AdminController { Long reviewerId = (Long) request.getAttribute("accountId"); + // 删除 pending 文件 + storageService.delete(config.getStoragePath()); + + config.setStoragePath(null); config.setStatus(ConfigStatus.REJECTED); config.setReviewerId(reviewerId); config.setReviewedAt(LocalDateTime.now()); diff --git a/par-core/src/main/java/com/par/core/storage/CachedStorageService.java b/par-core/src/main/java/com/par/core/storage/CachedStorageService.java index 69a5429..766f88c 100644 --- a/par-core/src/main/java/com/par/core/storage/CachedStorageService.java +++ b/par-core/src/main/java/com/par/core/storage/CachedStorageService.java @@ -55,4 +55,10 @@ public class CachedStorageService implements StorageService { if (isQiniuMode()) return local.exists(path) || qiniu.exists(path); return local.exists(path); } + + @Override + public void delete(String path) { + local.delete(path); + if (isQiniuMode()) qiniu.delete(path); + } } diff --git a/par-core/src/main/java/com/par/core/storage/LocalStorageService.java b/par-core/src/main/java/com/par/core/storage/LocalStorageService.java index c113e99..ab4cd66 100644 --- a/par-core/src/main/java/com/par/core/storage/LocalStorageService.java +++ b/par-core/src/main/java/com/par/core/storage/LocalStorageService.java @@ -63,4 +63,13 @@ public class LocalStorageService implements StorageService { public boolean exists(String path) { return Files.exists(baseDir.resolve(path)); } + + @Override + public void delete(String path) { + try { + Files.deleteIfExists(baseDir.resolve(path)); + } catch (IOException e) { + log.warn("删除文件失败 {}: {}", path, e.getMessage()); + } + } } diff --git a/par-core/src/main/java/com/par/core/storage/QiniuStorageService.java b/par-core/src/main/java/com/par/core/storage/QiniuStorageService.java index fd43ea9..ebde71f 100644 --- a/par-core/src/main/java/com/par/core/storage/QiniuStorageService.java +++ b/par-core/src/main/java/com/par/core/storage/QiniuStorageService.java @@ -93,6 +93,17 @@ public class QiniuStorageService implements StorageService { } } + @Override + public void delete(String path) { + ensureInit(); + try { + bucketManager.delete(bucket, path); + log.debug("Qiniu 删除: {}", path); + } catch (QiniuException e) { + log.warn("Qiniu 删除失败 {}: {}", path, e.response != null ? e.response.error : e.getMessage()); + } + } + private static String env(String key) { return System.getenv(key); } private static String env(String key, String def) { String v = System.getenv(key); diff --git a/par-core/src/main/java/com/par/core/storage/StorageService.java b/par-core/src/main/java/com/par/core/storage/StorageService.java index 875f06c..bc45ed9 100644 --- a/par-core/src/main/java/com/par/core/storage/StorageService.java +++ b/par-core/src/main/java/com/par/core/storage/StorageService.java @@ -15,4 +15,7 @@ public interface StorageService { /** 检查是否存在 */ boolean exists(String path); + + /** 删除文件 */ + void delete(String path); }