边缘安全加速 ESA如何使用KV存储
简单使用(你的value为字符串)
const edgeKv = new EdgeKV({ namespace: 'test-video' });
const apiKey = await edgeKv.get('API_KEY');
解析value(你的value为json)
edgeKv.get(key) 返回的是字符串。
如果你存的是 JSON 对象,需要用 edgeKv.get(key, { type: 'json' })。
注意:所有 EdgeKV 操作都是异步的,必须用 await。
下面是一个完整的示例,展示如何从 test-video 命名空间中获取 API_KEY 并使用它:
export default {
async fetch(request) {
try {
// 初始化 EdgeKV,指定命名空间
const edgeKv = new EdgeKV({ namespace: 'test-video' });
// 从 KV 中获取 API_KEY 的值
const apiMasterKey = await edgeKv.get('API_KEY');
// 如果 KV 中没有值,可以设置默认值或返回错误
if (!apiMasterKey) {
return new Response('API_KEY not found in EdgeKV', { status: 500 });
}
// 示例:将 key 用于后续逻辑(比如添加到请求头)
const url = new URL(request.url);
const newRequest = new Request(request, {
headers: new Headers(request.headers),
});
newRequest.headers.set('X-API-KEY', apiMasterKey);
// 转发请求到源站(或做其他处理)
const response = await fetch(newRequest);
return response;
} catch (error) {
console.error('EdgeKV read error:', error);
return new Response('Internal Server Error', { status: 500 });
}
}
};
💬 评论