内网也能调 Cloudflare API:cloudflare-typescript 代理配置与自定义 fetch 技巧清单

发布时间:2026/10/21 22:07:25

内网也能调 Cloudflare API:cloudflare-typescript 代理配置与自定义 fetch 技巧清单 内网也能调 Cloudflare APIcloudflare-typescript 代理配置与自定义 fetch 技巧清单【免费下载链接】cloudflare-typescriptThe official TypeScript library for the Cloudflare API项目地址: https://gitcode.com/gh_mirrors/cl/cloudflare-typescript项目简介Cloudflare 官方 TypeScript SDKcloudflare-typescript是 Cloudflare 官方出品的 TypeScript/JavaScript SDKnpm 包名cloudflare让你用类型安全的方式调用 Cloudflare REST API——从 Zones、DNS、Workers 到 AI、KV、R2 等上百个资源全部内置自动分页、重试、超时和完整的请求/响应类型定义。如果你的运行环境在内网、无法直连api.cloudflare.com或者想用自己的网络层代理、Mock、埋点这篇文章给你一份可落地的代理配置与自定义 fetch 技巧清单。一键安装# 直接安装 SDK npm install cloudflare # 如需查看/修改源码可克隆仓库 git clone https://gitcode.com/gh_mirrors/cl/cloudflare-typescript拿到客户端只需两行核心逻辑见src/client.tsimport Cloudflare from cloudflare; const client new Cloudflare({ apiToken: process.env[CLOUDFLARE_API_TOKEN], // 默认读取该环境变量可省略 });技巧 1用 baseURL 把请求指到你的代理网关客户端构造函数支持baseURL选项默认值是https://api.cloudflare.com/client/v4见 src/client.ts 中ClientOptions.baseURL的定义。把它改成公司网关或本地 Mock 地址即可让所有请求走内网const client new Cloudflare({ apiToken: process.env[CLOUDFLARE_API_TOKEN], baseURL: http://gateway.intranet.com/cf-proxy/client/v4, });也可以不改代码直接用环境变量CLOUDFLARE_BASE_URL覆盖多环境切换非常方便。技巧 2三种运行时的代理配置方法官方推荐的做法是通过fetchOptions注入运行时的代理选项README 中 “Configuring proxies” 一节。不同运行时写法不同运行时关键做法要点Node.js用 undici 的ProxyAgent通过fetchOptions.dispatcher传入最常用支持 HTTP/HTTPS 代理Bun直接传fetchOptions.proxy字符串一个字段搞定DenoDeno.createHttpClient({ proxy })后放入fetchOptions.client需先创建 HTTP 客户端Node 示例内网代理场景最常用import * as undici from undici; const proxyAgent new undici.ProxyAgent(http://proxy.intranet:8888); const client new Cloudflare({ apiToken: process.env[CLOUDFLARE_API_TOKEN], fetchOptions: { dispatcher: proxyAgent, }, }); 小技巧fetchOptions是全局默认值单次请求还可以传独立的fetchOptions覆盖它方便对个别慢接口单独加参数。技巧 3自定义 fetch 的三种姿势SDK 默认使用全局fetch见src/internal/shims.ts的getDefaultFetch。想完全接管网络层有三种方式整体替换全局 fetchglobalThis.fetch myFetch适合老项目统一改造。构造时注入推荐import myFetch from my-fetch; const client new Cloudflare({ apiToken: process.env[CLOUDFLARE_API_TOKEN], fetch: myFetch, // 自定义 fetch 函数 });派生新客户端用client.withOptions({ fetch: myFetch })在不动原客户端的情况下换网络层一个项目里可以并存“直连”和“走代理”两个客户端实例。自定义 fetch 里还能顺手做请求埋点、Mock 测试、日志留痕——官方测试就是用注入的fetch来断言发出的 URL 和请求体参考tests/index.test.ts中的custom fetch用例。技巧 4内网弱网下的超时与重试调优内网链路长、不稳定两个参数直接调timeout单请求超时默认 1 分钟超时抛APIConnectionTimeoutErrormaxRetries默认自动重试 2 次指数退避对 408、409、429、5xx 和网络断连都生效。const client new Cloudflare({ apiToken: process.env[CLOUDFLARE_API_TOKEN], timeout: 20 * 1000, // 20 秒 maxRetries: 5, // 内网多给几次机会 });重试逻辑含Retry-After头解析位于src/client.ts的retryRequest方法行为透明可控。技巧 5开 debug 日志排查代理是否生效内网排障最快的方式是把日志开到debug能看到每个请求的 URL、响应状态与耗时const client new Cloudflare({ logLevel: debug, // 或设环境变量 CLOUDFLARE_LOGdebug });日志格式与工具在src/internal/utils/log.ts还可传入 pino、winston 等第三方 logger 接管输出。环境变量速查清单环境变量作用CLOUDFLARE_API_TOKENAPI Token 认证推荐CLOUDFLARE_API_KEY/CLOUDFLARE_EMAIL旧版 Global Key 认证CLOUDFLARE_BASE_URL覆盖默认 API 地址指向代理网关CLOUDFLARE_LOG日志级别debug/info/warn/error/offCLOUDFLARE_CUSTOM_HEADERS按行注入自定义请求头如X-Proxy-Tag: internal总结想让所有请求走内网代理优先baseURL指向网关或按运行时用fetchOptions配代理Node 用 undiciProxyAgent想接管网络层埋点/Mock/测试构造时传fetch或用withOptions派生客户端弱网环境记得调大timeout和maxRetries并用logLevel: debug快速定位问题。掌握这份清单无论在公司内网还是边缘环境cloudflare-typescript 都能稳定连上 Cloudflare API。【免费下载链接】cloudflare-typescriptThe official TypeScript library for the Cloudflare API项目地址: https://gitcode.com/gh_mirrors/cl/cloudflare-typescript创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/21 23:32:00

异步复位同步释放:数字电路稳定启动的黄金法则

1. 项目概述:为什么我们需要“异步复位同步释放”?在数字电路设计,尤其是FPGA和ASIC开发中,复位信号的处理是确保系统稳定性的基石。一个不稳定的复位信号,轻则导致状态机跑飞、数据错乱,重则让整个系统陷入…

2026/10/22 17:24:03

C# 未排序数组中第 k 个最小/最大元素 (预期线性时间)

目录 例如 流程图 示例代码 参考资料 如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。 未排序数组中第 k 个最小/最大元素 (预期线性时间)(Kth Smallest/Largest Element in Unsorted Array | Set 2 …

2026/10/22 17:24:03

播客App推荐:通勤与洗碗时间,别再浪费在刷短视频上

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/22 17:24:03

翻译工具合集:DeepL、Google 翻译、有道与沉浸式翻译扩展

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列AIGC(GPT、DeepSeek、豆包、千问、Kimi) 👉关于作者 专注于Android/Unity和各种游戏开发技巧&a…

2026/10/22 17:24:03

快速启动器推荐:PowerToys Run、Wox/Everything、Alfred 思路与 Listary

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列AIGC(GPT、DeepSeek、豆包、千问、Kimi) 👉关于作者 专注于Android/Unity和各种游戏开发技巧&a…

2026/10/22 17:19:01

AI小说创作神器

一、项目概况91Writing 是一个面向小说创作场景的开源工具,核心目标是将大模型能力嵌入到小说的大纲、章节、人物、世界观等创作环节中。项目明确声明为纯前端实现(主分支),所有业务数据保存在浏览器本地,不提供云同步…

2026/10/22 11:29:28

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/22 0:01:49

电商智能运营体系从0到1:架构设计、落地步骤与避坑指南

前两年我们团队接了一个电商平台的运营中台项目,目标很直白:把过去靠运营拍脑袋做的选品、定价、发券、推活动这些事,逐步用数据算法和自动化流程代替。项目名字内部就叫“电商智能运营体系”。最近有不少朋友问我当时是怎么设计的、踩过哪些…

2026/10/22 0:01:49

若依框架AI代码生成不稳定?用Agent Skill三层结构+五步法搞定

最近一段时间,我一直想把后台管理系统里那些机械重复的增删改查代码交给AI去写。框架用的是若依,按理说这类业务代码模式非常固定,应该是AI最擅长的事情。可真试下来却不是那么回事——你让AI生成一个用户管理模块,它给出的Contro…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑