边缘安全加速ESA如何使用KV存储

边缘安全加速 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 });
    }
  }
};

💬 评论

0/200