Initial 智念AIGC platform

This commit is contained in:
inman
2026-05-29 10:26:02 +08:00
commit f9c3393f84
86 changed files with 14741 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
import { describe, expect, it } from "vitest";
import { sha256Hex, signVolcengineRequest } from "@/lib/volcengine/signature";
describe("Volcengine Visual signing", () => {
it("creates canonical request and signed headers", () => {
const signed = signVolcengineRequest({
method: "POST",
endpoint: "https://visual.volcengineapi.com",
query: {
Version: "2022-08-31",
Action: "CVSync2AsyncSubmitTask"
},
body: JSON.stringify({ req_key: "jimeng_seedream46_cvtob", prompt: "test" }),
accessKeyId: "ak",
secretAccessKey: "sk",
region: "cn-north-1",
service: "cv",
date: new Date("2026-05-28T00:00:00Z")
});
expect(signed.url).toBe("https://visual.volcengineapi.com/?Action=CVSync2AsyncSubmitTask&Version=2022-08-31");
expect(signed.headers.Authorization).toContain("HMAC-SHA256 Credential=ak/20260528/cn-north-1/cv/request");
expect(signed.headers["X-Content-Sha256"]).toBe(sha256Hex(JSON.stringify({ req_key: "jimeng_seedream46_cvtob", prompt: "test" })));
expect(signed.canonicalRequest).toContain("content-type;host;x-content-sha256;x-date");
});
});