2 Commits
Author SHA1 Message Date
sun f971de6821 chore: 删除无用的预检测试脚本 _preflight.js
该脚本仅用于本地测试,不属于项目核心代码,清理冗余文件减少项目杂乱度
2026-08-16 18:43:56 +08:00
sun 0f7102a41d fix: 补上 dashboard 缺失的 formatBytes 函数定义 2026-08-16 18:41:33 +08:00
2 changed files with 7 additions and 53 deletions
-53
View File
@@ -1,53 +0,0 @@
const https = require('https');
const base = 'test-test.zeabur.app';
function req(method, path, headers) {
return new Promise((resolve) => {
const r = https.request({
hostname: base, port: 443, path, method, headers: headers || {},
}, (res) => {
const chunks = [];
res.on('data', (c) => chunks.push(c));
res.on('end', () => resolve({ status: res.statusCode, headers: res.headers, body: Buffer.concat(chunks) }));
});
r.on('error', (e) => resolve({ error: e.message }));
r.end();
});
}
(async () => {
// 1. 预检 OPTIONS 请求
console.log('=== 预检: OPTIONS /v1/audio/speech (with Origin) ===');
const r1 = await req('OPTIONS', '/v1/audio/speech', {
'Origin': 'https://example.com',
'Access-Control-Request-Method': 'POST',
'Access-Control-Request-Headers': 'content-type, authorization',
});
console.log('Status:', r1.status);
console.log('Headers:');
for (const k of Object.keys(r1.headers)) {
if (k.startsWith('access-control') || k === 'vary') {
console.log(' ' + k + ': ' + r1.headers[k]);
}
}
console.log('Body:', r1.body ? r1.body.toString('utf8') : '');
// 2. 预检但无 Origin(同源或非浏览器)
console.log('\n=== OPTIONS /v1/audio/speech (NO Origin) ===');
const r2 = await req('OPTIONS', '/v1/audio/speech', {});
console.log('Status:', r2.status);
// 3. 实际 POST 请求
console.log('\n=== POST /v1/audio/speech (with Origin) ===');
const body = JSON.stringify({ model: 'tts-1', input: 'test', voice: 'alloy' });
const r3 = await req('POST', '/v1/audio/speech', {
'Origin': 'https://example.com',
'Content-Type': 'application/json',
'Authorization': 'Bearer sk-HRNfl15pp8e0KLewaydRCmvf2KfkOYd728yLJmuff5DkyaXd',
'Content-Length': Buffer.byteLength(body),
});
if (r3.body) r3.write = r3.write || (() => {});
console.log('Status:', r3.status);
console.log('Access-Control-Allow-Origin:', r3.headers['access-control-allow-origin']);
console.log('Vary:', r3.headers['vary']);
})();
+7
View File
@@ -642,6 +642,13 @@
return `${m}m`;
};
const formatBytes = (b) => {
if (!b) return "0 B";
const k = 1024, sizes = ["B", "KB", "MB", "GB"];
const i = Math.floor(Math.log(b) / Math.log(k));
return (b / Math.pow(k, i)).toFixed(1) + " " + sizes[i];
};
onMounted(() => {
refresh();
setInterval(refresh, 10000);