39 lines
1.2 KiB
TypeScript
39 lines
1.2 KiB
TypeScript
import { config } from 'dotenv';
|
||
// 强制加载所有可能的本地环境变量文件
|
||
config({ path: ['.env.local', '.env'] });
|
||
|
||
const triggerRebuild = async () => {
|
||
// 优先读取 REBUILD_SECRET,降级读取 CRON_SECRET
|
||
const secret = process.env.REBUILD_SECRET || process.env.CRON_SECRET;
|
||
|
||
if (!secret) {
|
||
console.error('❌ 致命错误: 未在 .env.local 或 .env 找到 REBUILD_SECRET 或 CRON_SECRET');
|
||
process.exit(1);
|
||
}
|
||
|
||
console.log('🚀 正在携带合法 Token 请求时光机重置接口...');
|
||
|
||
try {
|
||
// 默认请求本地 8080 端口,确保 Next.js 服务正在运行
|
||
const response = await fetch('http://localhost:8080/api/admin/rebuild-snapshots', {
|
||
method: 'POST',
|
||
headers: {
|
||
'Authorization': `Bearer ${secret}`,
|
||
'Content-Type': 'application/json'
|
||
}
|
||
});
|
||
|
||
const data = await response.json();
|
||
|
||
if (response.ok) {
|
||
console.log('✅ 历史快照重建成功!', JSON.stringify(data, null, 2));
|
||
} else {
|
||
console.error('❌ 重建失败,服务器返回:', data);
|
||
}
|
||
} catch (error) {
|
||
console.error('❌ 请求发送异常 (请确认 npm run dev 正在运行且端口为 8080):', error);
|
||
}
|
||
};
|
||
|
||
triggerRebuild();
|