您可以通过边缘存储的内置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异常。
示例代码
export default { fetch(request) { return handleRequest(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; } }
put
写入/更新Key-Value数据到NameSpace(存储空间)。
定义
put(key,value)
参数说明
参数
说明
key
类型为string,不能为空
type
要存储的数据,最大为1.8 MB,类型可为以下任意一种:
string
ReadableStream
ArrayBuffer
Response
返回值
返回一个Promise(可调用await来确保操作完成):
如果put成功,resolve成undefined。
如果发生异常导致put失败,reject成error异常。
示例代码
export default { async fetch(request) { return handleRequest(request); } } async function handleRequest(request) { try { const edgeKV = new EdgeKV({ namespace: "ns" }); let data = await edgeKV.put("put_string", "string_value") // await edgeKV.put("put_stream", new HTMLStream("test_stream", [])); // await edgeKV.put("put_array_buffer", getArrayBuffer()); // await edgeKV.put("put_array_buffer", new Response("test"); if (data === undefined) { return "EdgeKV put success\n"; } else { return "EdgeKV put failed\n"; } } catch (e) { return "EdgeKV put error" + e; } }
delete
从NameSpace(存储空间)里删除Key及其对应的Value数据。
定义
delete(key)
参数说明
参数
说明
key
需要删除的Key,类型为string
返回值
返回一个Promise(可以调用await来确保操作完成):
如果删除成功,resolve成true。
如果删除失败,resolve成false。
如果发生异常导致delete失败,reject成error异常。
示例代码
export default { async fetch(request) { return handleRequest(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; } }