最近我在做 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 tokenapi_token: process.env.CF_API_TOKEN || '',// or use email & api keyapi_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"
}

参考资料

  • Runtime API: https://developers.cloudflare.com/workers/runtime-apis/kv/
  • RESTful API: https://developers.cloudflare.com/api/operations/workers-kv-namespace-list-namespaces

赞助

  • 关注我的 Github 账号:@willin
  • 参与 爱发电 计划
  • 支付宝或微信扫码打赏

remote-cloudflare-kv 在 Vercel 上使用 Cloudflare KV相关推荐

  1. Cloudflare为italki全球上千万语言学习者坚守第一道安全防线

    全球大型语言学习社区italki成立于2007年,提供超过150种语言的外教1对1在线课程,和涵盖免费外语学习内容.全球语言爱好者交流社区等的一站式语言学习平台. 挑战:为用户创造更稳定.更安全的语言 ...

  2. php采集绕过cloudflare,三行代码带你绕过cloudflare反爬

    在使用Python编写蜘蛛爬取数据时,偶尔也有失败的,其中有种失败的情况就是目标站使用coludflare cdn,爬取数据时总是返回400 bad request. 今天我就详细的给大家讲解一下如何 ...

  3. cloudflare免费证书_免费获取cloudflare的ssl证书

    点击ssl 证书 选中 中间那个 保存文件 xxx.pem   一个 为xxx.key server { listen 80; #listen [::]:80; server_name  xxx.ne ...

  4. 批量修改CloudFlare上的域名的DNS - by PHP

    <?php/*** Title: 批量修改CloudFlare上的所有域名的DNS* Author: Rudon <285744011@qq.com>* Date: 2019-03- ...

  5. 1.62亿美元收购Area 1 Security,Cloudflare在零信任安全平台扩展上迈出的重要一步

    Cloudflare最初创立于2009年,以向客户提供基于反向代理的内容分发网络和分布域名解析服务为主要业务.而客户则可以利用Cloudflare提供的服务保护自己免受各种网络攻击.虽然Cloudfl ...

  6. 任何人都可以借助Workers在Cloudflare上运行JavaScript了

    一年前的今天,Cloudflare给我一项任务:让人们可以在Cloudflare的边缘服务器上运行代码.那时,我们还不知道那是什么意思.是基于容器吗?一种新的图灵不完备的领域专属语言?Lua?&quo ...

  7. 如何给你的网站套上Cloudflare(以阿里云为例)

    文章目录 Cloudflare 是什么 准备工作 开搞 Cloudflare 设置 阿里云域名设置 等待 设置 DNS 解析记录 其他问题 看下效果 结尾 Cloudflare 是什么 以下内容引自维 ...

  8. 将 Cloudflare 页面与 IPFS 结合使用

    星际文件系统或 IPFS 是一种点对点超媒体协议. 简单来说,IPFS 允许您将资产存储在去中心化存储中. 像以太坊这样的区块链允许你将智能合约部署到区块链网络,但如果你将资产或静态文件存储在以太坊网 ...

  9. Cloudflare Pages 搭建hexo

    演示站 1.安装 Wrangler 2.0 CLI npm npm install -g wrangler yarn yarn global add wrangler 2.使用您的 Cloudflar ...

最新文章

  1. Exchange Server 2010安装测试
  2. 关于c++类中的指针成员问题
  3. Netlib文件转化为mps文件
  4. Windows 服务器安全维护知识
  5. 如何制作网线标签和贴标签
  6. J2EE-RBAC权限管理
  7. lamp架构,搭建一个网络平台
  8. mysql偏移注入_移位溢注:告别靠人品的偏移注入
  9. 路飞学城14天集训营作业2—三级菜单
  10. 1059. C语言竞赛(20)-PAT乙级真题
  11. inner join去除重复_SQL多表查询:join表联结
  12. html弹窗代码大全定时弹窗,js点击弹窗弹出表单框代码
  13. LeetCode 2122. 还原原数组
  14. vue项目 pc端自适配方案
  15. 软考·系统架构师论文——论软件的高并发设计
  16. HB 7066机舱内部非金属材料毒性测定
  17. 如何在sap里设置自定义打印纸张
  18. nginx常见502错误提示原因和解决方法
  19. 漏洞通告 |IBM发布9月更新, 修复墨云科技报告的漏洞
  20. Vivado ILA Advanced Trigger的使用

热门文章

  1. 软件测试能干多长时间
  2. PyQt5 安装教程
  3. PyQt5 安装VSCODE
  4. c语言读取字母个数柱状图,C语言实现绘制柱状图
  5. 个人可以做量化交易吗?
  6. 自学测试半年,终于收到了腾讯的offer,那一刻我哭出了声...
  7. ubuntu 安装openmpi
  8. 伊利安慕希酸奶产品正式在东南亚上市
  9. js数组push对象覆盖问题?
  10. Cocos2dx 实现擦除即橡皮擦效果的实现