兰 亭 墨 苑
期货 · 量化 · AI · 终身学习
首页
归档
编辑文章
标题 *
URL 别名 *
内容 *
(支持 Markdown 格式)
不完全是直接“上传文件”,Cloudflare Worker 的部署和传统服务器不一样,有几个关键点需要理解,尤其是涉及 WASM 模块(比如 Go 编译的 .wasm 文件)。我给你梳理清楚整个流程: ⸻ 1️⃣ Worker 的部署方式 Cloudflare Worker 有几种常用部署方式: 1. 通过 Web UI • 在 Cloudflare 仪表盘 → Workers → 创建 Worker • 可以直接在在线编辑器里写 JS 代码 • 适合简单脚本,但上传 WASM 不能直接拖文件放进去 2. 通过 Wrangler CLI(推荐) • Wrangler 是 Cloudflare 官方提供的工具,用于本地开发、构建和部署 Worker • 可以把 JS + WASM 模块一起打包上传 ⸻ 2️⃣ 如何上传 Go WASM 文件 Cloudflare Worker 并不能像传统服务器那样直接访问文件系统。你必须通过 Worker 项目打包 的方式上传: a. 安装 Wrangler npm install -g wrangler wrangler login b. 初始化项目 wrangler generate my-worker cd my-worker c. 项目结构示例 my-worker/ │ ├─ package.json ├─ wrangler.toml ├─ worker.js # Worker 主入口 ├─ main.wasm # Go 编译后的 WASM └─ index.html # 可选,静态前端 d. 在 Worker 中引用 WASM import wasmModule from './main.wasm' addEventListener("fetch", event => { event.respondWith(handleRequest(event.request)) }) async function handleRequest(req) { const { instance } = await WebAssembly.instantiate(wasmModule) // 这里根据 Go 暴露的接口调用 return new Response("Hello from WASM!", { headers: { "content-type": "text/plain" } }) } 注意:在 Wrangler 项目里,WASM 文件通过 import 或 bindings 的方式打包到 Worker。 e. wrangler.toml 配置 WASM name = "go-wasm-worker" main = "worker.js" compatibility_date = "2025-12-12" [[wasm_modules]] name = "main" path = "./main.wasm" • 这样 Wrangler 知道要把 main.wasm 打包到 Worker ⸻ 3️⃣ 部署到 Cloudflare wrangler publish • 这个命令会打包 JS + WASM 上传到 Cloudflare Worker • Worker 会有自己的 URL,例如: https://go-wasm-worker.your-subdomain.workers.dev ⸻ 4️⃣ 前端访问 • 前端页面 fetch('https://go-wasm-worker.your-subdomain.workers.dev') • 就能拿到 Go WASM 返回的数据 ⸻ ✅ 总结 • 不能直接拖 .wasm 文件到 Worker UI,需要通过 Wrangler 打包 上传 • Wrangler 会把 JS + WASM 打包成单个 Worker • 前端通过 HTTP 请求调用 Worker API • Cloudflare 提供全球 CDN 加速、免维护服务器 ⸻ 如果你愿意,我可以帮你画一张 完整 Go WASM + Worker + 前端的部署架构图,让你一眼就看懂整个流程。 你希望我画吗?
配图 (可多选)
选择新图片文件或拖拽到此处
标签
更新文章
删除文章