From 871e5d6549cea42d50a4fec5cdb803623f00b185 Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Sun, 18 May 2025 09:46:29 +0800 Subject: [PATCH] 'commit' --- dsAiSupport/pom.xml | 6 ++++ .../aiSupport/Util/AiPpt/Kit/ApiKit.java | 18 ++-------- .../aiSupport/Util/DashScope/ImgSong.java | 15 ++------ .../aiSupport/Util/DashScope/ImgSpeak.java | 15 ++------ .../Util/DashScope/VideoStyleTransform.java | 22 ++++-------- .../Util/DouBao/CVGetResultDemo.java | 30 ++++++++++++++++ .../Util/DouBao/CVSubmitTaskDemo.java | 35 +++++++++++++++++++ .../aiSupport/Util/KeLing/Kit/KlCommon.java | 8 +---- .../Util/Liblib/Kit/LibLibCommon.java | 4 +-- .../Util/Midjourney/Kit/MjCommon.java | 17 +-------- .../Util/Suno/SunoMusicGenerator.java | 26 ++++++-------- .../src/main/resources/application_dev.yaml | 5 +++ .../target/classes/application_dev.yaml | 5 +++ 13 files changed, 109 insertions(+), 97 deletions(-) create mode 100644 dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DouBao/CVGetResultDemo.java create mode 100644 dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DouBao/CVSubmitTaskDemo.java diff --git a/dsAiSupport/pom.xml b/dsAiSupport/pom.xml index 61e9a91a..9d5de3c0 100644 --- a/dsAiSupport/pom.xml +++ b/dsAiSupport/pom.xml @@ -53,6 +53,12 @@ commons-io 2.15.0 + + + com.volcengine + volc-sdk-java + 1.0.221 + com.alibaba diff --git a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/AiPpt/Kit/ApiKit.java b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/AiPpt/Kit/ApiKit.java index 3f193500..30ec3f6e 100644 --- a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/AiPpt/Kit/ApiKit.java +++ b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/AiPpt/Kit/ApiKit.java @@ -2,8 +2,7 @@ package com.dsideal.aiSupport.Util.AiPpt.Kit; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.dsideal.aiSupport.Plugin.YamlProp; -import com.jfinal.kit.Prop; +import com.dsideal.aiSupport.AiSupportApplication; import org.apache.http.entity.ContentType; import org.apache.http.entity.mime.MultipartEntityBuilder; @@ -13,8 +12,6 @@ import java.util.HashMap; import java.util.Map; import java.util.Objects; -import static com.dsideal.aiSupport.AiSupportApplication.getEnvPrefix; - /** * Api * @@ -22,17 +19,8 @@ import static com.dsideal.aiSupport.AiSupportApplication.getEnvPrefix; * @date 2024/7/15 */ public class ApiKit { - public static Prop PropKit; // 配置文件工具 - protected static String BASE_URL; - protected static String apiKey; // 填写access key - - static { - //加载配置文件 - String configFile = "application_{?}.yaml".replace("{?}", getEnvPrefix()); - PropKit = new YamlProp(configFile); - BASE_URL = PropKit.get("AIPPT.BASE_URL"); - apiKey = PropKit.get("AIPPT.API_KEY"); - } + protected static String BASE_URL = AiSupportApplication.PropKit.get("AIPPT.BASE_URL"); + protected static String apiKey = AiSupportApplication.PropKit.get("AIPPT.API_KEY"); public static String createApiToken(String uid, Integer limit) { diff --git a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DashScope/ImgSong.java b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DashScope/ImgSong.java index 234bac8b..5e34a9d7 100644 --- a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DashScope/ImgSong.java +++ b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DashScope/ImgSong.java @@ -3,8 +3,6 @@ package com.dsideal.aiSupport.Util.DashScope; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.dsideal.aiSupport.Plugin.YamlProp; -import com.jfinal.kit.Prop; import lombok.SneakyThrows; import okhttp3.*; import org.slf4j.Logger; @@ -12,28 +10,19 @@ import org.slf4j.LoggerFactory; import java.util.concurrent.TimeUnit; -import static com.dsideal.aiSupport.AiSupportApplication.getEnvPrefix; - +import static com.dsideal.aiSupport.AiSupportApplication.PropKit; /** * 阿里云达摩院EMO视频合成API工具类 */ public class ImgSong { private static final Logger log = LoggerFactory.getLogger(ImgSong.class); private static final String API_URL = "https://dashscope.aliyuncs.com/api/v1/services/aigc/image2video/video-synthesis/"; - private static final String API_KEY; + private static final String API_KEY= PropKit.get("aliyun.API_KEY"); // 获取项目根目录路径 protected static String projectRoot = System.getProperty("user.dir").replace("\\", "/") + "/dsAiSupport"; // 拼接相对路径 protected static String basePath = projectRoot + "/src/main/java/com/dsideal/aiSupport/Util/DashScope/Example/"; - public static Prop PropKit; // 配置文件工具 - - static { - //加载配置文件 - String configFile = "application_{?}.yaml".replace("{?}", getEnvPrefix()); - PropKit = new YamlProp(configFile); - API_KEY = PropKit.get("aliyun.API_KEY"); - } /** * 调用EMO视频合成API diff --git a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DashScope/ImgSpeak.java b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DashScope/ImgSpeak.java index 2356df0b..94810a5c 100644 --- a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DashScope/ImgSpeak.java +++ b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DashScope/ImgSpeak.java @@ -2,8 +2,6 @@ package com.dsideal.aiSupport.Util.DashScope; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.dsideal.aiSupport.Plugin.YamlProp; -import com.jfinal.kit.Prop; import lombok.SneakyThrows; import okhttp3.*; import org.slf4j.Logger; @@ -11,8 +9,7 @@ import org.slf4j.LoggerFactory; import java.util.concurrent.TimeUnit; -import static com.dsideal.aiSupport.AiSupportApplication.getEnvPrefix; - +import static com.dsideal.aiSupport.AiSupportApplication.PropKit; /** * 阿里云达摩院灵动人像LivePortrait视频合成API工具类 */ @@ -21,20 +18,12 @@ public class ImgSpeak { private static final String API_URL = "https://dashscope.aliyuncs.com/api/v1/services/aigc/image2video/video-synthesis/"; private static final String FACE_DETECT_URL = "https://dashscope.aliyuncs.com/api/v1/services/aigc/image2video/face-detect"; private static final String TASK_URL = "https://dashscope.aliyuncs.com/api/v1/tasks/"; - private static final String API_KEY; + private static final String API_KEY=PropKit.get("aliyun.API_KEY"); // 获取项目根目录路径 protected static String projectRoot = System.getProperty("user.dir").replace("\\", "/") + "/dsAiSupport"; // 拼接相对路径 protected static String basePath = projectRoot + "/src/main/java/com/dsideal/aiSupport/Util/DashScope/Example/"; - public static Prop PropKit; // 配置文件工具 - - static { - //加载配置文件 - String configFile = "application_{?}.yaml".replace("{?}", getEnvPrefix()); - PropKit = new YamlProp(configFile); - API_KEY = PropKit.get("aliyun.API_KEY"); - } /** * 调用人脸检测API diff --git a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DashScope/VideoStyleTransform.java b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DashScope/VideoStyleTransform.java index 2cbd3ffa..e409c13f 100644 --- a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DashScope/VideoStyleTransform.java +++ b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DashScope/VideoStyleTransform.java @@ -2,15 +2,15 @@ package com.dsideal.aiSupport.Util.DashScope; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.dsideal.aiSupport.Plugin.YamlProp; import com.dsideal.aiSupport.Util.DashScope.Kit.VideoStyleEnum; -import com.jfinal.kit.Prop; import lombok.SneakyThrows; import okhttp3.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; + import java.util.concurrent.TimeUnit; -import static com.dsideal.aiSupport.AiSupportApplication.getEnvPrefix; + +import static com.dsideal.aiSupport.AiSupportApplication.PropKit; /** * 阿里云达摩院视频风格转换API工具类 @@ -18,26 +18,18 @@ import static com.dsideal.aiSupport.AiSupportApplication.getEnvPrefix; public class VideoStyleTransform { private static final Logger log = LoggerFactory.getLogger(VideoStyleTransform.class); private static final String API_URL = "https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis"; - private static final String API_KEY; + private static final String API_KEY = PropKit.get("aliyun.API_KEY"); // 获取项目根目录路径 protected static String projectRoot = System.getProperty("user.dir").replace("\\", "/") + "/dsAiSupport"; // 拼接相对路径 protected static String basePath = projectRoot + "/src/main/java/com/dsideal/aiSupport/Util/DashScope/Example/"; - public static Prop PropKit; // 配置文件工具 - - static { - //加载配置文件 - String configFile = "application_{?}.yaml".replace("{?}", getEnvPrefix()); - PropKit = new YamlProp(configFile); - API_KEY = PropKit.get("aliyun.API_KEY"); - } /** * 调用视频风格转换API * * @param videoUrl 视频URL - * @param style 风格类型,0-9之间的整数 + * @param style 风格类型,0-9之间的整数 * @param videoFps 视频帧率,默认为15 * @return 任务ID * @throws Exception 异常信息 @@ -214,7 +206,7 @@ public class VideoStyleTransform { // 调用视频风格转换API String taskId = transformVideoStyle(videoUrl, style, videoFps); - + // 轮询查询任务状态 int maxRetries = 100; int retryCount = 0; @@ -247,7 +239,7 @@ public class VideoStyleTransform { if (retryCount >= maxRetries) { log.error("查询任务状态超时,已达到最大重试次数: {}", maxRetries); } - + // 如果获取到了视频URL,则下载保存 if (resultVideoUrl != null && !resultVideoUrl.isEmpty()) { // 生成文件名(使用时间戳和任务ID) diff --git a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DouBao/CVGetResultDemo.java b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DouBao/CVGetResultDemo.java new file mode 100644 index 00000000..9ea22794 --- /dev/null +++ b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DouBao/CVGetResultDemo.java @@ -0,0 +1,30 @@ +package com.dsideal.aiSupport.Util.DouBao; + + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.volcengine.service.visual.IVisualService; +import com.volcengine.service.visual.impl.VisualServiceImpl; + +public class CVGetResultDemo { + + public static void main(String[] args) { + IVisualService visualService = VisualServiceImpl.getInstance(); + // call below method if you dont set ak and sk in ~/.vcloud/config + visualService.setAccessKey("your ak"); + visualService.setSecretKey("your sk"); + + JSONObject req=new JSONObject(); + //请求Body(查看接口文档请求参数-请求示例,将请求参数内容复制到此) + req.put("req_key",""); + req.put("",""); + + try { + Object response = visualService.cvGetResult(req); + System.out.println(JSON.toJSONString(response)); + } catch (Exception e) { + e.printStackTrace(); + } + } + +} \ No newline at end of file diff --git a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DouBao/CVSubmitTaskDemo.java b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DouBao/CVSubmitTaskDemo.java new file mode 100644 index 00000000..5b34343b --- /dev/null +++ b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/DouBao/CVSubmitTaskDemo.java @@ -0,0 +1,35 @@ +package com.dsideal.aiSupport.Util.DouBao; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.dsideal.aiSupport.AiSupportApplication; +import com.volcengine.service.visual.IVisualService; +import com.volcengine.service.visual.impl.VisualServiceImpl; + +public class CVSubmitTaskDemo { + + public static void main(String[] args) { + IVisualService visualService = VisualServiceImpl.getInstance(); + String ak = AiSupportApplication.PropKit.get("HuoShan.accessKey"); + String sk = AiSupportApplication.PropKit.get("HuoShan.secretKey"); + visualService.setAccessKey(ak); + visualService.setSecretKey(sk); + + JSONObject req = new JSONObject(); + req.put("req_key", "high_aes_general_v20_L"); + req.put("prompt", "千军万马"); + req.put("model_version", "general_v2.0_L"); + req.put("seed", -1); + req.put("scale", 3.5); + req.put("ddim_steps", 16); + req.put("width", 512); + req.put("height", 512); + req.put("use_sr", true); + try { + Object response = visualService.cvSubmitTask(req); + System.out.println(JSON.toJSONString(response)); + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/KeLing/Kit/KlCommon.java b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/KeLing/Kit/KlCommon.java index 4c4c6354..d8c1ea54 100644 --- a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/KeLing/Kit/KlCommon.java +++ b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/KeLing/Kit/KlCommon.java @@ -5,8 +5,6 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import com.auth0.jwt.JWT; import com.auth0.jwt.algorithms.Algorithm; -import com.dsideal.aiSupport.Plugin.YamlProp; -import com.jfinal.kit.Prop; import cn.hutool.core.io.FileUtil; import cn.hutool.http.HttpUtil; import org.slf4j.Logger; @@ -16,7 +14,7 @@ import java.util.Date; import java.util.HashMap; import java.util.Map; -import static com.dsideal.aiSupport.AiSupportApplication.getEnvPrefix; +import static com.dsideal.aiSupport.AiSupportApplication.PropKit; public class KlCommon { private static final Logger log = LoggerFactory.getLogger(KlCommon.class); @@ -27,12 +25,8 @@ public class KlCommon { static String ak; // 填写access key static String sk; // 填写secret key - public static Prop PropKit; // 配置文件工具 static { - //加载配置文件 - String configFile = "application_{?}.yaml".replace("{?}", getEnvPrefix()); - PropKit = new YamlProp(configFile); ak = PropKit.get("KeLing.ak"); sk = PropKit.get("KeLing.sk"); } diff --git a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Liblib/Kit/LibLibCommon.java b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Liblib/Kit/LibLibCommon.java index d5cee474..44206623 100644 --- a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Liblib/Kit/LibLibCommon.java +++ b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Liblib/Kit/LibLibCommon.java @@ -21,6 +21,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; +import static com.dsideal.aiSupport.AiSupportApplication.PropKit; import static com.dsideal.aiSupport.AiSupportApplication.getEnvPrefix; @@ -37,9 +38,6 @@ public class LibLibCommon { private static final Logger log = LoggerFactory.getLogger(LibLibCommon.class); static { - //加载配置文件 - String configFile = "application_{?}.yaml".replace("{?}", getEnvPrefix()); - PropKit = new YamlProp(configFile); accessKey = PropKit.get("LIBLIB.accessKey"); // 从配置文件获取Access Key secretKey = PropKit.get("LIBLIB.secretKey"); // 从配置文件获取Secret Key } diff --git a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Midjourney/Kit/MjCommon.java b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Midjourney/Kit/MjCommon.java index c3543fd0..a3003d93 100644 --- a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Midjourney/Kit/MjCommon.java +++ b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Midjourney/Kit/MjCommon.java @@ -1,16 +1,9 @@ package com.dsideal.aiSupport.Util.Midjourney.Kit; import cn.hutool.core.io.FileUtil; -import cn.hutool.http.HttpRequest; -import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.auth0.jwt.JWT; -import com.auth0.jwt.algorithms.Algorithm; -import com.dsideal.aiSupport.Plugin.YamlProp; -import com.dsideal.aiSupport.Util.KeLing.Kit.KlErrorCode; -import com.jfinal.kit.Prop; import lombok.SneakyThrows; import okhttp3.OkHttpClient; import okhttp3.Request; @@ -18,12 +11,8 @@ import okhttp3.Response; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; import java.util.concurrent.TimeUnit; - -import static com.dsideal.aiSupport.AiSupportApplication.getEnvPrefix; +import static com.dsideal.aiSupport.AiSupportApplication.PropKit; public class MjCommon { private static final Logger log = LoggerFactory.getLogger(MjCommon.class); @@ -33,13 +22,9 @@ public class MjCommon { protected static String basePath = projectRoot + "/src/main/java/com/dsideal/aiSupport/Util/Midjourney/Example/"; protected static String ak; // 填写access key - public static Prop PropKit; // 配置文件工具 protected static final String BASE_URL = "https://goapi.gptnb.ai"; static { - //加载配置文件 - String configFile = "application_{?}.yaml".replace("{?}", getEnvPrefix()); - PropKit = new YamlProp(configFile); ak = PropKit.get("GPTNB.sk"); } diff --git a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Suno/SunoMusicGenerator.java b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Suno/SunoMusicGenerator.java index b2e3ae63..000bd798 100644 --- a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Suno/SunoMusicGenerator.java +++ b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/Suno/SunoMusicGenerator.java @@ -1,10 +1,8 @@ package com.dsideal.aiSupport.Util.Suno; + import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.dsideal.aiSupport.Plugin.YamlProp; -import com.dsideal.aiSupport.Util.Midjourney.Kit.MjCommon; -import com.jfinal.kit.Prop; import okhttp3.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -13,7 +11,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; -import static com.dsideal.aiSupport.AiSupportApplication.getEnvPrefix; +import static com.dsideal.aiSupport.AiSupportApplication.PropKit; public class SunoMusicGenerator { @@ -23,19 +21,16 @@ public class SunoMusicGenerator { private static final int RETRY_INTERVAL = 5000; // 重试间隔(毫秒) private static final Logger log = LoggerFactory.getLogger(SunoMusicGenerator.class); // 获取项目根目录路径 - protected static String projectRoot = System.getProperty("user.dir").replace("\\","/")+"/dsAiSupport"; + protected static String projectRoot = System.getProperty("user.dir").replace("\\", "/") + "/dsAiSupport"; // 拼接相对路径 protected static String basePath = projectRoot + "/src/main/java/com/dsideal/aiSupport/Util/Suno/Example/"; protected static String ak; // 填写access key - public static Prop PropKit; // 配置文件工具 static { - //加载配置文件 - String configFile = "application_{?}.yaml".replace("{?}", getEnvPrefix()); - PropKit = new YamlProp(configFile); ak = PropKit.get("GPTNB.sk"); } + public static void main(String[] args) throws IOException, InterruptedException { // 创建OkHttpClient @@ -114,7 +109,7 @@ public class SunoMusicGenerator { // 构建查询URL,添加ids参数 // 注意:不使用HttpUrl.Builder,直接构建URL字符串以避免自动URL编码 StringBuilder urlBuilder = new StringBuilder(FEED_URL); - + // 添加ids参数,用逗号分隔多个ID if (!taskIds.isEmpty()) { // 从生成响应中获取clips的ID @@ -128,10 +123,10 @@ public class SunoMusicGenerator { } } } - + // 构建查询参数 urlBuilder.append("?"); - + // 如果找到了clips的ID,则使用这些ID进行查询 if (!clipIds.isEmpty()) { String idsParam = String.join(",", clipIds); @@ -147,7 +142,7 @@ public class SunoMusicGenerator { String url = urlBuilder.toString(); log.info("查询URL: {}", url); - + // 创建查询请求 Request feedRequest = new Request.Builder() .url(url) @@ -221,7 +216,7 @@ public class SunoMusicGenerator { if (isComplete && audioUrl != null && !audioUrl.isEmpty()) { // 移除URL中可能存在的反引号 audioUrl = audioUrl.replace("`", "").trim(); - + String fileName = "suno_music_" + System.currentTimeMillis() + ".mp3"; // 使用basePath作为保存目录 String savePath = basePath + fileName; @@ -237,7 +232,8 @@ public class SunoMusicGenerator { /** * 下载音频文件 - * @param client OkHttpClient实例 + * + * @param client OkHttpClient实例 * @param audioUrl 音频URL * @param savePath 保存路径 */ diff --git a/dsAiSupport/src/main/resources/application_dev.yaml b/dsAiSupport/src/main/resources/application_dev.yaml index e9b9b1d7..8e77c56e 100644 --- a/dsAiSupport/src/main/resources/application_dev.yaml +++ b/dsAiSupport/src/main/resources/application_dev.yaml @@ -86,3 +86,8 @@ aliyun: LIBLIB: accessKey: sOCtVLVTNOZkRMajlhzCmg secretKey: PUe8QTRG9i0G9EbpedHmIpLQ0FyxoYY9 + +# 火山 +HuoShan: + accessKey: api-key-20250418163654 + secretKey: f6150e6c-422a-4265-8b63-4d941b271220 diff --git a/dsAiSupport/target/classes/application_dev.yaml b/dsAiSupport/target/classes/application_dev.yaml index e9b9b1d7..8e77c56e 100644 --- a/dsAiSupport/target/classes/application_dev.yaml +++ b/dsAiSupport/target/classes/application_dev.yaml @@ -86,3 +86,8 @@ aliyun: LIBLIB: accessKey: sOCtVLVTNOZkRMajlhzCmg secretKey: PUe8QTRG9i0G9EbpedHmIpLQ0FyxoYY9 + +# 火山 +HuoShan: + accessKey: api-key-20250418163654 + secretKey: f6150e6c-422a-4265-8b63-4d941b271220