diff --git a/YunXiaoTools/src/main/java/com/dsideal/YunXiaoTools/Utils/ObsUtil.java b/YunXiaoTools/src/main/java/com/dsideal/YunXiaoTools/Utils/ObsUtil.java index 195f49b1..a0116549 100644 --- a/YunXiaoTools/src/main/java/com/dsideal/YunXiaoTools/Utils/ObsUtil.java +++ b/YunXiaoTools/src/main/java/com/dsideal/YunXiaoTools/Utils/ObsUtil.java @@ -1,7 +1,11 @@ package com.dsideal.YunXiaoTools.Utils; +import cn.hutool.core.io.FileUtil; import com.jfinal.kit.PropKit; import com.obs.services.ObsClient; +import com.obs.services.model.ListObjectsRequest; +import com.obs.services.model.ObjectListing; +import com.obs.services.model.ObsObject; import com.obs.services.model.PutObjectResult; import java.io.File; @@ -16,11 +20,25 @@ public class ObsUtil { String ak = PropKit.get("obs_accessKeyId"); String sk = PropKit.get("obs_accessKeySecret"); String bucketName = PropKit.get("obs_bucket_name"); - + //obs文件夹位置 + String directory = objectKey.substring(0, objectKey.lastIndexOf("/") + 1); // 创建ObsClient实例 ObsClient obsClient = new ObsClient(ak, sk, endPoint); - try { + // 列出并删除指定目录下的ZIP文件 + ListObjectsRequest request = new ListObjectsRequest(bucketName); + request.setPrefix(directory); // 设置目录前缀 + request.setMaxKeys(1000); + + ObjectListing result = obsClient.listObjects(request); + for (ObsObject obsObject : result.getObjects()) { + String key = obsObject.getObjectKey(); + if (key.toLowerCase().endsWith(".zip")) { + System.out.println("删除旧文件: " + key); + obsClient.deleteObject(bucketName, key); + } + } + // 上传文件 PutObjectResult res=obsClient.putObject(bucketName, objectKey, new File(localFile)); System.out.println(res.getBucketName()); diff --git a/YunXiaoTools/src/main/java/com/dsideal/YunXiaoTools/Utils/ReadDataUtil.java b/YunXiaoTools/src/main/java/com/dsideal/YunXiaoTools/Utils/ReadDataUtil.java index af326fe7..e316cc22 100644 --- a/YunXiaoTools/src/main/java/com/dsideal/YunXiaoTools/Utils/ReadDataUtil.java +++ b/YunXiaoTools/src/main/java/com/dsideal/YunXiaoTools/Utils/ReadDataUtil.java @@ -2,6 +2,7 @@ package com.dsideal.YunXiaoTools.Utils; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; +import com.jfinal.kit.PathKit; import java.io.File; import java.io.IOException; @@ -20,8 +21,8 @@ public class ReadDataUtil { List csvFiles = new ArrayList<>(); // 读取指定的表列表,生成csv文件 - String[] tables = {"excel_学前幼儿入园总量_86df0e5a25", "excel_义务教育在校生总量_2a7d8ec9ec"}; - for (String table : tables) { + String content=FileUtil.readUtf8String(PathKit.getRootClassPath()+"/syncTables.txt"); + for (String table : content.split("\r\n")) { System.out.println("正在生成" + table + "的csv文件"); // 在临时目录中创建CSV文件 @@ -61,6 +62,7 @@ public class ReadDataUtil { csvFiles.forEach(csv -> FileUtil.del(csv)); FileUtil.del(zipPath); FileUtil.del(tempDir.toString()); + //清理此路径下旧的文件 return "https://dsideal.obs.cn-north-1.myhuaweicloud.com/"+key; } } diff --git a/YunXiaoTools/src/main/resources/syncTables.txt b/YunXiaoTools/src/main/resources/syncTables.txt new file mode 100644 index 00000000..5ade592f --- /dev/null +++ b/YunXiaoTools/src/main/resources/syncTables.txt @@ -0,0 +1,2 @@ +excel_学前幼儿入园总量_86df0e5a25 +excel_义务教育在校生总量_2a7d8ec9ec \ No newline at end of file diff --git a/YunXiaoTools/target/classes/syncTables.txt b/YunXiaoTools/target/classes/syncTables.txt new file mode 100644 index 00000000..5ade592f --- /dev/null +++ b/YunXiaoTools/target/classes/syncTables.txt @@ -0,0 +1,2 @@ +excel_学前幼儿入园总量_86df0e5a25 +excel_义务教育在校生总量_2a7d8ec9ec \ No newline at end of file