边缘存储API

本文主要介绍边缘存储的内置API。

Constructor

传入NameSpace(存储空间名称)创建一个边缘KV实例对象。

  • 定义

    const edgeKv = new EdgeKV({ namespace: "ns"});
  • 参数说明

    参数

    说明

    namespace

    NameSpace是您在控制台创建的存储空间名称,可在存储空间列表查看。

get

从NameSpace(存储空间)里读取数据。

  • 定义

    get(key[, {type: “type”}])
  • 参数说明

    参数

    说明

    key

    类型为string

    type

    类型可为以下任意一种:

    • stream(默认类型):ReadableStream的形式,返回流式的内容。

    • text:返回字符串。

    • json:将存储的JSON内容转换成一个Object后再返回。

    • arrayBuffer:返回二进制数据。

  • 返回值

    返回一个Promise(可以调用await来确保操作完成):

    • 如果key不存在,会返回undefined。

    • 如果发生异常导致get失败,reject成error异常。

  • 示例代码

    addEventListener("fetch", event => {
      event.respondWith(handleRequest(event.request))
    })
    
    async function handleRequest(request) {
      try {
        const edgeKV = new EdgeKV({ namespace: "ns" });
        let getType = { type: "text" };
        let value = await edgeKV.get("key", getType);
        if (value === undefined) {
          return "EdgeKV get: key not found";
        } else {
          return new Response(value);
        }
      } catch (e) {
        return "EdgeKV get error" + e;
      }
    }

delete

从NameSpace(存储空间)里删除Key及其对应的Value数据。

  • 定义

    delete(key)
  • 参数说明

    参数

    说明

    key

    需要删除的Key,类型为string

  • 返回值

    返回一个Promise(可以调用await来确保操作完成):

    • 如果删除成功,resolve成true。

    • 如果删除失败,resolve成false。

    • 如果发生异常导致delete失败,reject成error异常。

  • 示例代码

    addEventListener("fetch", event => {
      event.respondWith(handleRequest(event.request))
    })
    
    async function handleRequest() {
      try {
        const edgeKV = new EdgeKV({ namespace: "ns" });
        let resp = await edgeKV.delete("key");
        if (resp) {
          return "EdgeKV delete success";
        } else {
          return "EdgeKV delete failed";
        }
      }
      catch (e) {
        return "EdgeKV delete error" + e;
      }
    }