您可以通過邊緣儲存的內建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; } }