mirror of
https://github.com/MarSeventh/CloudFlare-ImgBed.git
synced 2026-05-01 17:36:36 +00:00
debug:调试恢复功能和登录功能
This commit is contained in:
87
functions/api/debug/settings-check.js
Normal file
87
functions/api/debug/settings-check.js
Normal file
@@ -0,0 +1,87 @@
|
||||
/**
|
||||
* 设置检查工具
|
||||
*/
|
||||
|
||||
import { getDatabase } from '../../utils/databaseAdapter.js';
|
||||
|
||||
export async function onRequest(context) {
|
||||
var env = context.env;
|
||||
|
||||
try {
|
||||
var db = getDatabase(env);
|
||||
|
||||
var results = {
|
||||
allSettings: [],
|
||||
expectedSettings: [
|
||||
'manage@sysConfig@page',
|
||||
'manage@sysConfig@security',
|
||||
'manage@sysConfig@upload',
|
||||
'manage@sysConfig@others'
|
||||
],
|
||||
missingSettings: [],
|
||||
existingSettings: {}
|
||||
};
|
||||
|
||||
// 列出所有设置
|
||||
var allSettings = await db.listSettings({});
|
||||
results.allSettings = allSettings.keys.map(function(item) {
|
||||
return {
|
||||
key: item.name,
|
||||
hasValue: !!item.value,
|
||||
valueLength: item.value ? item.value.length : 0
|
||||
};
|
||||
});
|
||||
|
||||
// 检查每个预期的设置
|
||||
for (var i = 0; i < results.expectedSettings.length; i++) {
|
||||
var settingKey = results.expectedSettings[i];
|
||||
try {
|
||||
var value = await db.get(settingKey);
|
||||
if (value) {
|
||||
results.existingSettings[settingKey] = {
|
||||
exists: true,
|
||||
length: value.length,
|
||||
preview: value.substring(0, 200) + (value.length > 200 ? '...' : '')
|
||||
};
|
||||
} else {
|
||||
results.missingSettings.push(settingKey);
|
||||
results.existingSettings[settingKey] = {
|
||||
exists: false
|
||||
};
|
||||
}
|
||||
} catch (error) {
|
||||
results.existingSettings[settingKey] = {
|
||||
exists: false,
|
||||
error: error.message
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// 检查是否有其他manage@开头的设置
|
||||
var manageSettings = await db.listSettings({ prefix: 'manage@' });
|
||||
results.manageSettings = manageSettings.keys.map(function(item) {
|
||||
return {
|
||||
key: item.name,
|
||||
hasValue: !!item.value,
|
||||
valueLength: item.value ? item.value.length : 0
|
||||
};
|
||||
});
|
||||
|
||||
return new Response(JSON.stringify(results, null, 2), {
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
});
|
||||
|
||||
} catch (error) {
|
||||
return new Response(JSON.stringify({
|
||||
error: error.message,
|
||||
stack: error.stack
|
||||
}), {
|
||||
status: 500,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user