From 7a5107cda391c33074b66a72aaabd9ee740df644 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Fri, 10 Jan 2025 13:59:36 +0800 Subject: [PATCH] 'commit' --- .../Service/MysqlRestoreService.java | 9 +++- .../YunXiaoTools/Utils/CommonUtil.java | 47 +++++++++++++++++++ .../target/classes/application.properties | 2 + 3 files changed, 57 insertions(+), 1 deletion(-) diff --git a/YunXiaoTools/src/main/java/com/dsideal/YunXiaoTools/Service/MysqlRestoreService.java b/YunXiaoTools/src/main/java/com/dsideal/YunXiaoTools/Service/MysqlRestoreService.java index 51af07ed..8a2de3ad 100644 --- a/YunXiaoTools/src/main/java/com/dsideal/YunXiaoTools/Service/MysqlRestoreService.java +++ b/YunXiaoTools/src/main/java/com/dsideal/YunXiaoTools/Service/MysqlRestoreService.java @@ -3,6 +3,9 @@ package com.dsideal.YunXiaoTools.Service; import com.dsideal.YunXiaoTools.Utils.CommonUtil; 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 java.io.*; import java.util.zip.*; @@ -169,7 +172,11 @@ public class MysqlRestoreService { } public static void main(String[] args) { + PropKit.use("application.properties"); + //获取最后一次上传的数据库文件 + String key = CommonUtil.getLastDataBaseZip(); + //开始还原数据库 MysqlRestoreService mysqlRestoreUtil = new MysqlRestoreService(); - mysqlRestoreUtil.restore("dsideal/2023-08-01/2023-08-01_01_01_01.sql.zip"); + mysqlRestoreUtil.restore(key); } } \ No newline at end of file diff --git a/YunXiaoTools/src/main/java/com/dsideal/YunXiaoTools/Utils/CommonUtil.java b/YunXiaoTools/src/main/java/com/dsideal/YunXiaoTools/Utils/CommonUtil.java index 0380cca7..fee28e57 100644 --- a/YunXiaoTools/src/main/java/com/dsideal/YunXiaoTools/Utils/CommonUtil.java +++ b/YunXiaoTools/src/main/java/com/dsideal/YunXiaoTools/Utils/CommonUtil.java @@ -1,6 +1,10 @@ package com.dsideal.YunXiaoTools.Utils; 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 java.util.regex.Matcher; import java.util.regex.Pattern; @@ -23,6 +27,7 @@ public class CommonUtil { throw new RuntimeException("获取mysqldump路径失败", e); } } + /** * 获取mysql命令路径 */ @@ -70,4 +75,46 @@ public class CommonUtil { throw new RuntimeException("解析数据库名失败: " + jdbcUrl, e); } } + + /** + * 获取OBS中的最新备份文件 + * @return + */ + public static String getLastDataBaseZip() { + String endPoint = PropKit.get("obs_endpoint"); + String ak = PropKit.get("obs_accessKeyId"); + String sk = PropKit.get("obs_accessKeySecret"); + String bucketName = PropKit.get("obs_bucket_name"); + //obs文件夹位置 + String directory = "HuangHai/YunXiao"; + + String res = ""; + // 创建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")) { + res = key; + break; + } + } + } catch (Exception e) { + System.err.println("获取OBS文件列表失败: " + e.getMessage()); + e.printStackTrace(); + } finally { + try { + obsClient.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + return res; + } } diff --git a/YunXiaoTools/target/classes/application.properties b/YunXiaoTools/target/classes/application.properties index b009e46c..571afe3c 100644 --- a/YunXiaoTools/target/classes/application.properties +++ b/YunXiaoTools/target/classes/application.properties @@ -13,6 +13,8 @@ write.jdbcUrl=jdbc:mysql://10.10.14.203:3306/HuangHai_Test?rewriteBatchedStateme # mysqldump执行文件位置 mysqldump_path=D:/ffmpeg/mysqldump.exe +# mysql执行文件位置 +mysql_path=D:/ffmpeg/mysql.exe # 当前是读取方还是写入方 1:读取 2:写入 DEPLOY_ID=1