main
HuangHai 2 months ago
parent 9606f04766
commit 871e5d6549

@ -53,6 +53,12 @@
<artifactId>commons-io</artifactId> <artifactId>commons-io</artifactId>
<version>2.15.0</version> <version>2.15.0</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/com.volcengine/volc-sdk-java -->
<dependency>
<groupId>com.volcengine</groupId>
<artifactId>volc-sdk-java</artifactId>
<version>1.0.221</version>
</dependency>
<!-- 数据库相关 --> <!-- 数据库相关 -->
<dependency> <dependency>
<groupId>com.alibaba</groupId> <groupId>com.alibaba</groupId>

@ -2,8 +2,7 @@ package com.dsideal.aiSupport.Util.AiPpt.Kit;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.dsideal.aiSupport.Plugin.YamlProp; import com.dsideal.aiSupport.AiSupportApplication;
import com.jfinal.kit.Prop;
import org.apache.http.entity.ContentType; import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder; import org.apache.http.entity.mime.MultipartEntityBuilder;
@ -13,8 +12,6 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import static com.dsideal.aiSupport.AiSupportApplication.getEnvPrefix;
/** /**
* Api * Api
* *
@ -22,17 +19,8 @@ import static com.dsideal.aiSupport.AiSupportApplication.getEnvPrefix;
* @date 2024/7/15 * @date 2024/7/15
*/ */
public class ApiKit { public class ApiKit {
public static Prop PropKit; // 配置文件工具 protected static String BASE_URL = AiSupportApplication.PropKit.get("AIPPT.BASE_URL");
protected static String BASE_URL; protected static String apiKey = AiSupportApplication.PropKit.get("AIPPT.API_KEY");
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");
}
public static String createApiToken(String uid, Integer limit) { public static String createApiToken(String uid, Integer limit) {

@ -3,8 +3,6 @@ package com.dsideal.aiSupport.Util.DashScope;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.dsideal.aiSupport.Plugin.YamlProp;
import com.jfinal.kit.Prop;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import okhttp3.*; import okhttp3.*;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -12,28 +10,19 @@ import org.slf4j.LoggerFactory;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import static com.dsideal.aiSupport.AiSupportApplication.getEnvPrefix; import static com.dsideal.aiSupport.AiSupportApplication.PropKit;
/** /**
* EMOAPI * EMOAPI
*/ */
public class ImgSong { public class ImgSong {
private static final Logger log = LoggerFactory.getLogger(ImgSong.class); 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_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 projectRoot = System.getProperty("user.dir").replace("\\", "/") + "/dsAiSupport";
// 拼接相对路径 // 拼接相对路径
protected static String basePath = projectRoot + "/src/main/java/com/dsideal/aiSupport/Util/DashScope/Example/"; 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");
}
/** /**
* EMOAPI * EMOAPI

@ -2,8 +2,6 @@ package com.dsideal.aiSupport.Util.DashScope;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.dsideal.aiSupport.Plugin.YamlProp;
import com.jfinal.kit.Prop;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import okhttp3.*; import okhttp3.*;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -11,8 +9,7 @@ import org.slf4j.LoggerFactory;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import static com.dsideal.aiSupport.AiSupportApplication.getEnvPrefix; import static com.dsideal.aiSupport.AiSupportApplication.PropKit;
/** /**
* LivePortraitAPI * LivePortraitAPI
*/ */
@ -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 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 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 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 projectRoot = System.getProperty("user.dir").replace("\\", "/") + "/dsAiSupport";
// 拼接相对路径 // 拼接相对路径
protected static String basePath = projectRoot + "/src/main/java/com/dsideal/aiSupport/Util/DashScope/Example/"; 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 * API

@ -2,15 +2,15 @@ package com.dsideal.aiSupport.Util.DashScope;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.dsideal.aiSupport.Plugin.YamlProp;
import com.dsideal.aiSupport.Util.DashScope.Kit.VideoStyleEnum; import com.dsideal.aiSupport.Util.DashScope.Kit.VideoStyleEnum;
import com.jfinal.kit.Prop;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import okhttp3.*; import okhttp3.*;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import static com.dsideal.aiSupport.AiSupportApplication.getEnvPrefix;
import static com.dsideal.aiSupport.AiSupportApplication.PropKit;
/** /**
* API * API
@ -18,26 +18,18 @@ import static com.dsideal.aiSupport.AiSupportApplication.getEnvPrefix;
public class VideoStyleTransform { public class VideoStyleTransform {
private static final Logger log = LoggerFactory.getLogger(VideoStyleTransform.class); 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_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 projectRoot = System.getProperty("user.dir").replace("\\", "/") + "/dsAiSupport";
// 拼接相对路径 // 拼接相对路径
protected static String basePath = projectRoot + "/src/main/java/com/dsideal/aiSupport/Util/DashScope/Example/"; 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 * API
* *
* @param videoUrl URL * @param videoUrl URL
* @param style 0-9 * @param style 0-9
* @param videoFps 15 * @param videoFps 15
* @return ID * @return ID
* @throws Exception * @throws Exception
@ -214,7 +206,7 @@ public class VideoStyleTransform {
// 调用视频风格转换API // 调用视频风格转换API
String taskId = transformVideoStyle(videoUrl, style, videoFps); String taskId = transformVideoStyle(videoUrl, style, videoFps);
// 轮询查询任务状态 // 轮询查询任务状态
int maxRetries = 100; int maxRetries = 100;
int retryCount = 0; int retryCount = 0;
@ -247,7 +239,7 @@ public class VideoStyleTransform {
if (retryCount >= maxRetries) { if (retryCount >= maxRetries) {
log.error("查询任务状态超时,已达到最大重试次数: {}", maxRetries); log.error("查询任务状态超时,已达到最大重试次数: {}", maxRetries);
} }
// 如果获取到了视频URL则下载保存 // 如果获取到了视频URL则下载保存
if (resultVideoUrl != null && !resultVideoUrl.isEmpty()) { if (resultVideoUrl != null && !resultVideoUrl.isEmpty()) {
// 生成文件名使用时间戳和任务ID // 生成文件名使用时间戳和任务ID

@ -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();
}
}
}

@ -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();
}
}
}

@ -5,8 +5,6 @@ import cn.hutool.http.HttpResponse;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.auth0.jwt.JWT; import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm; 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.core.io.FileUtil;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -16,7 +14,7 @@ import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import static com.dsideal.aiSupport.AiSupportApplication.getEnvPrefix; import static com.dsideal.aiSupport.AiSupportApplication.PropKit;
public class KlCommon { public class KlCommon {
private static final Logger log = LoggerFactory.getLogger(KlCommon.class); private static final Logger log = LoggerFactory.getLogger(KlCommon.class);
@ -27,12 +25,8 @@ public class KlCommon {
static String ak; // 填写access key static String ak; // 填写access key
static String sk; // 填写secret key static String sk; // 填写secret key
public static Prop PropKit; // 配置文件工具
static { static {
//加载配置文件
String configFile = "application_{?}.yaml".replace("{?}", getEnvPrefix());
PropKit = new YamlProp(configFile);
ak = PropKit.get("KeLing.ak"); ak = PropKit.get("KeLing.ak");
sk = PropKit.get("KeLing.sk"); sk = PropKit.get("KeLing.sk");
} }

@ -21,6 +21,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.io.IOException; import java.io.IOException;
import static com.dsideal.aiSupport.AiSupportApplication.PropKit;
import static com.dsideal.aiSupport.AiSupportApplication.getEnvPrefix; import static com.dsideal.aiSupport.AiSupportApplication.getEnvPrefix;
@ -37,9 +38,6 @@ public class LibLibCommon {
private static final Logger log = LoggerFactory.getLogger(LibLibCommon.class); private static final Logger log = LoggerFactory.getLogger(LibLibCommon.class);
static { static {
//加载配置文件
String configFile = "application_{?}.yaml".replace("{?}", getEnvPrefix());
PropKit = new YamlProp(configFile);
accessKey = PropKit.get("LIBLIB.accessKey"); // 从配置文件获取Access Key accessKey = PropKit.get("LIBLIB.accessKey"); // 从配置文件获取Access Key
secretKey = PropKit.get("LIBLIB.secretKey"); // 从配置文件获取Secret Key secretKey = PropKit.get("LIBLIB.secretKey"); // 从配置文件获取Secret Key
} }

@ -1,16 +1,9 @@
package com.dsideal.aiSupport.Util.Midjourney.Kit; package com.dsideal.aiSupport.Util.Midjourney.Kit;
import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.FileUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; 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 lombok.SneakyThrows;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import okhttp3.Request; import okhttp3.Request;
@ -18,12 +11,8 @@ import okhttp3.Response;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import static com.dsideal.aiSupport.AiSupportApplication.PropKit;
import static com.dsideal.aiSupport.AiSupportApplication.getEnvPrefix;
public class MjCommon { public class MjCommon {
private static final Logger log = LoggerFactory.getLogger(MjCommon.class); 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 basePath = projectRoot + "/src/main/java/com/dsideal/aiSupport/Util/Midjourney/Example/";
protected static String ak; // 填写access key protected static String ak; // 填写access key
public static Prop PropKit; // 配置文件工具
protected static final String BASE_URL = "https://goapi.gptnb.ai"; protected static final String BASE_URL = "https://goapi.gptnb.ai";
static { static {
//加载配置文件
String configFile = "application_{?}.yaml".replace("{?}", getEnvPrefix());
PropKit = new YamlProp(configFile);
ak = PropKit.get("GPTNB.sk"); ak = PropKit.get("GPTNB.sk");
} }

@ -1,10 +1,8 @@
package com.dsideal.aiSupport.Util.Suno; package com.dsideal.aiSupport.Util.Suno;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; 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 okhttp3.*;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -13,7 +11,7 @@ import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import static com.dsideal.aiSupport.AiSupportApplication.getEnvPrefix; import static com.dsideal.aiSupport.AiSupportApplication.PropKit;
public class SunoMusicGenerator { public class SunoMusicGenerator {
@ -23,19 +21,16 @@ public class SunoMusicGenerator {
private static final int RETRY_INTERVAL = 5000; // 重试间隔(毫秒) private static final int RETRY_INTERVAL = 5000; // 重试间隔(毫秒)
private static final Logger log = LoggerFactory.getLogger(SunoMusicGenerator.class); 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 basePath = projectRoot + "/src/main/java/com/dsideal/aiSupport/Util/Suno/Example/";
protected static String ak; // 填写access key protected static String ak; // 填写access key
public static Prop PropKit; // 配置文件工具
static { static {
//加载配置文件
String configFile = "application_{?}.yaml".replace("{?}", getEnvPrefix());
PropKit = new YamlProp(configFile);
ak = PropKit.get("GPTNB.sk"); ak = PropKit.get("GPTNB.sk");
} }
public static void main(String[] args) throws IOException, InterruptedException { public static void main(String[] args) throws IOException, InterruptedException {
// 创建OkHttpClient // 创建OkHttpClient
@ -114,7 +109,7 @@ public class SunoMusicGenerator {
// 构建查询URL添加ids参数 // 构建查询URL添加ids参数
// 注意不使用HttpUrl.Builder直接构建URL字符串以避免自动URL编码 // 注意不使用HttpUrl.Builder直接构建URL字符串以避免自动URL编码
StringBuilder urlBuilder = new StringBuilder(FEED_URL); StringBuilder urlBuilder = new StringBuilder(FEED_URL);
// 添加ids参数用逗号分隔多个ID // 添加ids参数用逗号分隔多个ID
if (!taskIds.isEmpty()) { if (!taskIds.isEmpty()) {
// 从生成响应中获取clips的ID // 从生成响应中获取clips的ID
@ -128,10 +123,10 @@ public class SunoMusicGenerator {
} }
} }
} }
// 构建查询参数 // 构建查询参数
urlBuilder.append("?"); urlBuilder.append("?");
// 如果找到了clips的ID则使用这些ID进行查询 // 如果找到了clips的ID则使用这些ID进行查询
if (!clipIds.isEmpty()) { if (!clipIds.isEmpty()) {
String idsParam = String.join(",", clipIds); String idsParam = String.join(",", clipIds);
@ -147,7 +142,7 @@ public class SunoMusicGenerator {
String url = urlBuilder.toString(); String url = urlBuilder.toString();
log.info("查询URL: {}", url); log.info("查询URL: {}", url);
// 创建查询请求 // 创建查询请求
Request feedRequest = new Request.Builder() Request feedRequest = new Request.Builder()
.url(url) .url(url)
@ -221,7 +216,7 @@ public class SunoMusicGenerator {
if (isComplete && audioUrl != null && !audioUrl.isEmpty()) { if (isComplete && audioUrl != null && !audioUrl.isEmpty()) {
// 移除URL中可能存在的反引号 // 移除URL中可能存在的反引号
audioUrl = audioUrl.replace("`", "").trim(); audioUrl = audioUrl.replace("`", "").trim();
String fileName = "suno_music_" + System.currentTimeMillis() + ".mp3"; String fileName = "suno_music_" + System.currentTimeMillis() + ".mp3";
// 使用basePath作为保存目录 // 使用basePath作为保存目录
String savePath = basePath + fileName; String savePath = basePath + fileName;
@ -237,7 +232,8 @@ public class SunoMusicGenerator {
/** /**
* *
* @param client OkHttpClient *
* @param client OkHttpClient
* @param audioUrl URL * @param audioUrl URL
* @param savePath * @param savePath
*/ */

@ -86,3 +86,8 @@ aliyun:
LIBLIB: LIBLIB:
accessKey: sOCtVLVTNOZkRMajlhzCmg accessKey: sOCtVLVTNOZkRMajlhzCmg
secretKey: PUe8QTRG9i0G9EbpedHmIpLQ0FyxoYY9 secretKey: PUe8QTRG9i0G9EbpedHmIpLQ0FyxoYY9
# 火山
HuoShan:
accessKey: api-key-20250418163654
secretKey: f6150e6c-422a-4265-8b63-4d941b271220

@ -86,3 +86,8 @@ aliyun:
LIBLIB: LIBLIB:
accessKey: sOCtVLVTNOZkRMajlhzCmg accessKey: sOCtVLVTNOZkRMajlhzCmg
secretKey: PUe8QTRG9i0G9EbpedHmIpLQ0FyxoYY9 secretKey: PUe8QTRG9i0G9EbpedHmIpLQ0FyxoYY9
# 火山
HuoShan:
accessKey: api-key-20250418163654
secretKey: f6150e6c-422a-4265-8b63-4d941b271220

Loading…
Cancel
Save