remote-cloudflare-kv 在 Vercel 上使用 Cloudflare KV

最近我在做 Next.js 项目部署 Cloudflare Pages 时发现本地开发调试、登录鉴权等好多问题,所以又想要切回到 Vercel 中,便有了这么一个项目,可以在 Cloudflare 以外的环境上得到类似于 Worker Runtime 的 KV 使用体验。

废话不多说,直接进入正题。

源码: https://github.com/willin/remote-cloudflare-kv

安装

npm install --save remote-cloudflare-kv
# or
yarn add remote-cloudflare-kv
# or
pnpm install --save remote-cloudflare-kv

使用

初始化

import CloudflareKV from 'remote-cloudflare-kv';

export const NAMESPACE = new CloudflareKV({
  account_id: process.env.CF_ACCOUNT_ID || '',
  namespace_id: process.env.CF_NAMESPACE_ID || '',
  // use bearer token
  api_token: process.env.CF_API_TOKEN || '',
  // or use email & api key
  api_email: '',
  api_key: ''
});

写入 kv

await NAMESPACE.put(key, value);
// void

设置超时:

// 传入 unix 时间戳
await NAMESPACE.put(key, value, { expiration: secondsSinceEpoch });
// 传入秒数
await NAMESPACE.put(key, value, { expirationTtl: secondsFromNow });

设置 Metadata:

await NAMESPACE.put(key, value, {
  metadata: { someMetadataKey: 'someMetadataValue' }
});

读取 kv

// 替换 key & type
const result = await NAMESPACE.get('key', { type: 'json' });
console.log(result);
// {"hello": 1}

支持的类型: textjsonarrayBufferstream

读取 kv 并带 Metadata

const result = await NAMESPACE.getWithMetadata(key, { type: 'json' });
//  {"value": {"hello": 1}, "metadata": {"someKey": "someVal"}}

删除 kv

await NAMESPACE.delete(key);
// void

列出 kv

const result = await NAMESPACE.list();
console.log(result);

更多详细查询(在 Typescript 中):

await NAMESPACE.list({ prefix: string, limit: number, cursor: string });

列表响应参考:

{
  "keys": [
    {
      "name": "foo",
      "expiration": 1234,
      "metadata": { "someMetadataKey": "someMetadataValue" }
    }
  ],
  "list_complete": false,
  "cursor": "6Ck1la0VxJ0djhidm1MdX2FyD"
}

参考资料

赞助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Willin 老王躺平不摆烂

感谢你这么好看还这么慷慨

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值