<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cloudflare on LYon's Blog</title><link>https://yindongliang.com/docs/Cloudflare/</link><description>Recent content in Cloudflare on LYon's Blog</description><generator>Hugo</generator><language>zh-cn</language><atom:link href="https://yindongliang.com/docs/Cloudflare/index.xml" rel="self" type="application/rss+xml"/><item><title>文档导航</title><link>https://yindongliang.com/docs/Cloudflare/00-overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://yindongliang.com/docs/Cloudflare/00-overview/</guid><description>&lt;p>这里集中维护 Cloudflare 产品与工程实践的长期技术资料。新增与 Workers、Durable Objects、Containers、Sandbox、Workflows 等能力直接相关的文档时，放入本目录，并同步更新本页导航。&lt;/p></description></item><item><title>Workers：运行时 API、Bindings 与执行模型</title><link>https://yindongliang.com/docs/Cloudflare/workers-runtime-apis-and-bindings/</link><pubDate>Fri, 07 Aug 2026 00:00:00 +0000</pubDate><guid>https://yindongliang.com/docs/Cloudflare/workers-runtime-apis-and-bindings/</guid><description>&lt;blockquote class='book-hint '>
&lt;p>说明：本文由 Codex 根据作者提供的主题、对话素材与 Cloudflare 官方文档辅助生成，属于 AI 生成/整理内容，非作者原创。请读者自行甄别并交叉验证。&lt;/p>&lt;/blockquote>&lt;p>&lt;strong>值得单独写一篇。&lt;/strong>Workers 是 Cloudflare 开发平台的运行时底座；不先分清 handler、&lt;code>ctx&lt;/code>、&lt;code>env&lt;/code> binding 与运行时 API，后续接触 Queues、Durable Objects、Workflows、Dynamic Workers 时，很容易把“触发方式”“资源能力”和“部署管理 API”混在一起。&lt;/p></description></item><item><title>Durable Objects 使用方式与接口整理</title><link>https://yindongliang.com/docs/Cloudflare/durable-objects/</link><pubDate>Mon, 13 Jul 2026 00:00:00 +0000</pubDate><guid>https://yindongliang.com/docs/Cloudflare/durable-objects/</guid><description>&lt;blockquote class='book-hint '>
&lt;p>说明：本文由 Codex 根据作者提供的主题、对话素材与 Cloudflare 官方文档辅助生成，属于 AI 生成/整理内容，非作者原创。请读者自行甄别并交叉验证。&lt;/p>&lt;/blockquote>&lt;p>Cloudflare Durable Objects 是 Workers 体系里用来处理“有状态协调”的能力。普通 Worker 更像无状态函数：请求来了执行一段逻辑，执行完就结束；Durable Object 则像一个带身份、带内存状态、带私有存储的小型服务实例。&lt;/p></description></item><item><title>Dynamic Workers、Containers 与 Sandbox：关系、区别与使用方式</title><link>https://yindongliang.com/docs/Cloudflare/dynamic-workers-containers-sandbox/</link><pubDate>Fri, 07 Aug 2026 00:00:00 +0000</pubDate><guid>https://yindongliang.com/docs/Cloudflare/dynamic-workers-containers-sandbox/</guid><description>&lt;blockquote class='book-hint '>
&lt;p>说明：本文由 Codex 根据作者提供的主题、对话素材与 Cloudflare 官方文档辅助生成，属于 AI 生成/整理内容，非作者原创。请读者自行甄别并交叉验证。&lt;/p>&lt;/blockquote>&lt;p>Cloudflare 的 Dynamic Workers、Containers 与 Sandbox SDK 很容易被误认为是三个平级的“沙箱产品”。实际并非如此：&lt;/p></description></item><item><title>Dynamic Workers：Worker Loader、受控 Binding 与安全执行</title><link>https://yindongliang.com/docs/Cloudflare/dynamic-workers-api-and-security/</link><pubDate>Fri, 07 Aug 2026 00:00:00 +0000</pubDate><guid>https://yindongliang.com/docs/Cloudflare/dynamic-workers-api-and-security/</guid><description>&lt;blockquote class='book-hint '>
&lt;p>说明：本文由 Codex 根据作者提供的主题、对话素材与 Cloudflare 官方文档辅助生成，属于 AI 生成/整理内容，非作者原创。请读者自行甄别并交叉验证。&lt;/p>&lt;/blockquote>&lt;p>这是一篇“把 API 放回运行时”的实战页。Dynamic Workers 不是把一段字符串直接执行掉：先部署一个可信的 Loader Worker；Loader 再决定动态代码、它可拿到的 binding、网络出口和资源上限。真正重要的接口只有三层：&lt;code>WorkerLoader&lt;/code>、&lt;code>WorkerCode&lt;/code> 与 &lt;code>WorkerStub / entrypoint&lt;/code>。&lt;/p></description></item><item><title>Sandbox SDK：命令、文件、进程与会话 API 实战</title><link>https://yindongliang.com/docs/Cloudflare/sandbox-sdk-api-and-practice/</link><pubDate>Fri, 07 Aug 2026 00:00:00 +0000</pubDate><guid>https://yindongliang.com/docs/Cloudflare/sandbox-sdk-api-and-practice/</guid><description>&lt;blockquote class='book-hint '>
&lt;p>说明：本文由 Codex 根据作者提供的主题、对话素材与 Cloudflare 官方文档辅助生成，属于 AI 生成/整理内容，非作者原创。请读者自行甄别并交叉验证。&lt;/p>&lt;/blockquote>&lt;p>Sandbox SDK 的价值不是“替你执行一个命令”，而是把一套隔离 Linux 环境的生命周期、文件系统、进程、解释器与服务暴露能力，收敛为 Worker 中可调用的 TypeScript API。它建立在 Containers 与 Durable Objects 之上，适合 AI Agent、代码解释器、在线 IDE 和不可信代码执行。&lt;/p></description></item><item><title>Workflows 与 Dynamic Workflows：概念、使用方式与适用场景</title><link>https://yindongliang.com/docs/Cloudflare/workflows-dynamic-workflows/</link><pubDate>Fri, 07 Aug 2026 00:00:00 +0000</pubDate><guid>https://yindongliang.com/docs/Cloudflare/workflows-dynamic-workflows/</guid><description>&lt;blockquote class='book-hint '>
&lt;p>说明：本文由 Codex 根据作者提供的主题、对话素材与 Cloudflare 官方文档辅助生成，属于 AI 生成/整理内容，非作者原创。请读者自行甄别并交叉验证。&lt;/p>&lt;/blockquote>&lt;p>Cloudflare 这里有三个很容易混在一起的概念：&lt;strong>Workflows&lt;/strong>、&lt;strong>Dynamic Workers&lt;/strong> 与 &lt;strong>Dynamic Workflows&lt;/strong>。它们并不是三个同级、可互相替换的产品。&lt;/p></description></item><item><title>Workflows：实例、步骤、事件与恢复 API 实战</title><link>https://yindongliang.com/docs/Cloudflare/workflows-api-and-recovery/</link><pubDate>Fri, 07 Aug 2026 00:00:00 +0000</pubDate><guid>https://yindongliang.com/docs/Cloudflare/workflows-api-and-recovery/</guid><description>&lt;blockquote class='book-hint '>
&lt;p>说明：本文由 Codex 根据作者提供的主题、对话素材与 Cloudflare 官方文档辅助生成，属于 AI 生成/整理内容，非作者原创。请读者自行甄别并交叉验证。&lt;/p>&lt;/blockquote>&lt;p>Workflows 最容易被误用成“把异步函数放到后台”。它真正提供的是&lt;strong>可恢复的步骤边界&lt;/strong>：&lt;code>step.do()&lt;/code> 成功后的可序列化结果会被保存；睡眠、等待事件、Worker 重启或暂时失败后，运行时从已完成步骤继续。本文用“订单等待付款后履约”走完创建、等待、投递事件、查询与补偿的完整闭环。&lt;/p></description></item><item><title>Dynamic Workflows：多租户动态代码如何跨休眠恢复</title><link>https://yindongliang.com/docs/Cloudflare/dynamic-workflows-tenant-routing/</link><pubDate>Fri, 07 Aug 2026 00:00:00 +0000</pubDate><guid>https://yindongliang.com/docs/Cloudflare/dynamic-workflows-tenant-routing/</guid><description>&lt;blockquote class='book-hint '>
&lt;p>说明：本文由 Codex 根据作者提供的主题、对话素材与 Cloudflare 官方文档辅助生成，属于 AI 生成/整理内容，非作者原创。请读者自行甄别并交叉验证。&lt;/p>&lt;/blockquote>&lt;p>Dynamic Workers 解决“现在加载哪段代码”；Workflows 解决“这次流程在 sleep、重试或等待事件后如何继续”。Dynamic Workflows 解决二者结合后最棘手的问题：&lt;strong>一个数天前创建的实例恢复时，怎样找回当时那一版租户代码，而不是不小心执行当前最新版本。&lt;/strong>&lt;/p></description></item><item><title>Convex Workflows、Cloudflare Workflows 与 Dynamic Workflows：区别、场景与使用方式</title><link>https://yindongliang.com/docs/Cloudflare/convex-workflows-vs-cloudflare-workflows/</link><pubDate>Fri, 07 Aug 2026 00:00:00 +0000</pubDate><guid>https://yindongliang.com/docs/Cloudflare/convex-workflows-vs-cloudflare-workflows/</guid><description>&lt;blockquote class='book-hint '>
&lt;p>说明：本文由 Codex 根据作者提供的主题、对话素材与产品官方文档辅助生成，属于 AI 生成/整理内容，非作者原创。请读者自行甄别并交叉验证。&lt;/p>&lt;/blockquote>&lt;p>如果应用已经建立在 Convex 上，优先选 &lt;strong>Convex Workflow&lt;/strong>；如果流程代码由团队随 Worker 一起部署，优先选 &lt;strong>Cloudflare Workflows&lt;/strong>；只有当“流程实现本身”要按租户、用户或 Agent 在运行时加载时，才需要 &lt;strong>Cloudflare Dynamic Workflows&lt;/strong>。&lt;/p></description></item><item><title>Queues：生产者、消费者、批量处理与重试实战</title><link>https://yindongliang.com/docs/Cloudflare/queues-api-and-practice/</link><pubDate>Fri, 07 Aug 2026 00:00:00 +0000</pubDate><guid>https://yindongliang.com/docs/Cloudflare/queues-api-and-practice/</guid><description>&lt;blockquote class='book-hint '>
&lt;p>说明：本文由 Codex 根据作者提供的主题、对话素材与 Cloudflare 官方文档辅助生成，属于 AI 生成/整理内容，非作者原创。请读者自行甄别并交叉验证。&lt;/p>&lt;/blockquote>&lt;p>Queues 解决的是“请求到来时先可靠地收下工作，稍后再异步处理”。它适合削峰、异步发信、写入第三方服务、批处理和事件驱动管道；它不是严格 FIFO 队列，也不是能持久化多步骤状态机的 Workflow。它提供的是 &lt;strong>at-least-once（至少一次）投递&lt;/strong>：消息不会因一次暂时故障轻易丢失，但消费者必须能接受重复投递。&lt;/p></description></item><item><title>Cloudflare R2 图片上传到 Hugo 博客：安全、可验证的 AWS CLI 流程</title><link>https://yindongliang.com/docs/Cloudflare/r2-blog-image-upload/</link><pubDate>Fri, 07 Aug 2026 00:00:00 +0000</pubDate><guid>https://yindongliang.com/docs/Cloudflare/r2-blog-image-upload/</guid><description>&lt;blockquote class='book-hint '>
&lt;p>说明：本文由 Codex 根据作者提供的主题、对话素材与 Cloudflare 官方文档辅助生成，属于 AI 生成/整理内容，非作者原创。请读者自行甄别并交叉验证。&lt;/p>&lt;/blockquote>&lt;p>**结论：把博客图片上传到 R2 最稳妥的方式，是使用仅限目标 bucket 的 R2 专用 &lt;code>Object Read &amp;amp; Write&lt;/code> token，通过 S3 兼容 endpoint 写入 &lt;code>YYYY/filename.ext&lt;/code>，再用已启用的自定义 CDN 域名访问。**上传工具应显式写入 &lt;code>Content-Type&lt;/code> 和 &lt;code>Cache-Control&lt;/code>，默认拒绝同名覆盖，并在上传后同时校验 R2 元数据与 CDN URL。&lt;/p></description></item></channel></rss>