优化github action 逻辑

This commit is contained in:
Vaica committed 2026-06-02 10:56:59 +08:00
1 parent f91be983d4
commit 2c6bd1c964
12 files changed
+118 -775

No files matched your search

+61
View File
@@ -0,0 +1,61 @@
const crypto = require("crypto");
async function dogecloudApi(apiPath, data = {}) {
const accessKey = process.env.DOGECLOUD_ACCESS_KEY;
const secretKey = process.env.DOGECLOUD_SECRET_KEY;
if (!accessKey || !secretKey) {
console.error("Error: DOGECLOUD_ACCESS_KEY or DOGECLOUD_SECRET_KEY not set.");
process.exit(1);
}
const body = JSON.stringify(data);
const signStr = apiPath + "\n" + body;
const sign = crypto.createHmac("sha1", secretKey).update(signStr).digest("hex");
const authorization = `TOKEN ${accessKey}:${sign}`;
const res = await fetch(`https://api.dogecloud.com${apiPath}`, {
method: "POST",
headers: {
Authorization: authorization,
"Content-Type": "application/json",
},
body,
});
return res.json();
}
async function main() {
const cdnUrlListStr = process.env.CDN_URL_LIST;
if (!cdnUrlListStr) {
console.log("Warning: CDN_URL_LIST not found or empty.");
return;
}
const urlList = cdnUrlListStr
.replace(/\n/g, ",")
.split(",")
.map((u) => u.trim())
.filter(Boolean);
if (urlList.length === 0) {
console.log("No URLs to refresh.");
return;
}
console.log(`Refreshing ${urlList.length} URLs...`);
const result = await dogecloudApi("/cdn/refresh/add.json", {
rtype: "path",
urls: JSON.stringify(urlList),
});
if (result && result.code === 200) {
console.log(`Refresh task submitted. Task ID: ${result.data.task_id}`);
} else {
console.error(`Failed to submit refresh task. Response: ${JSON.stringify(result)}`);
process.exit(1);
}
}
main();