camofox-browser 存储状态导出 API 完整指南:GET/DELETE storage_state 详解

发布时间:2026/9/16 14:11:55
camofox-browser 存储状态导出 API 完整指南:GET/DELETE storage_state 详解 camofox-browser 存储状态导出 API 完整指南GET/DELETE storage_state 详解【免费下载链接】camofox-browserStealth headless browser for AI agents — bypass Cloudflare, bot detection, and anti-scraping. Drop-in Puppeteer/Playwright replacement.项目地址: https://gitcode.com/GitHub_Trending/ca/camofox-browsercamofox-browser 是一个专为 AI 智能体打造的隐身无头浏览器服务器基于 Camoufox 在 C 层面伪造浏览器指纹可绕过 Cloudflare 和各类机器人检测。本文详解它的存储状态storage_state导出 APIGET /sessions/:userId/storage_state可一键导出浏览器的 Cookie 与 localStorageDELETE /sessions/:userId/storage_state则能彻底重置会话让你把登录一次的成果安全地交给 AI 智能体反复复用。为什么 AI 智能体需要存储状态导出AI 智能体在真实网页上工作时几乎不可避免地要面对登录页、验证码和 OAuth 弹窗。Playwright 的无头模式很容易被指纹识别拦截而手动登录一次后再反复登录既耗时又脆弱。camofox-browser 的解法是把浏览器的全部存储状态——Cookie localStorage可选 IndexedDB——序列化成标准的 PlaywrightstorageStateJSON登录一次永久复用通过 VNC 可视化登录或导入 Cookie 后状态自动落盘浏览器重启后自动恢复跨服务共享导出的 JSON 可直接喂给任何 Playwright 脚本无需再与 camofox 绑定干净重置一条 DELETE 请求即可清空会话下一个智能体从全新状态开始 storage_state 是 Playwright 生态的标准格式不是 camofox 私有协议因此导出物具有完全的互操作性。导出存储状态GET /sessions/:userId/storage_state该端点由 VNC 插件 提供实现位于 plugins/vnc/index.js会导出该用户当前活跃浏览器上下文的完整存储状态。调用方式curl http://localhost:9377/sessions/my-agent/storage_state \ -H Authorization: Bearer YOUR_CAMOFOX_API_KEY \ -o storage_state.json响应结构返回标准 Playwright storageState 对象{ cookies: [ { name: session_id, value: abc123, domain: .example.com, path: /, expires: 1700000000, httpOnly: true, secure: true, sameSite: Lax } ], origins: [ { origin: https://example.com, localStorage: [ { name: theme, value: dark } ] } ] }错误码速查状态码含义排查建议404该 userId 没有活跃会话先POST /tabs创建标签页403缺少或无效的 API Key设置CAMOFOX_API_KEY并携带 Bearer Token500上下文已失效或导出失败检查会话健康状态后重试重置会话存储DELETE /sessions/:userId/storage_state该端点由 持久化插件 提供实现位于 plugins/persistence/index.js行为比想象中更温柔——它按三步安全清理关闭活跃上下文且不做检查点写入避免旧状态复活等待正在进行的写盘完成防止竞态删除磁盘上已持久化的 storage_state.jsoncurl -X DELETE http://localhost:9377/sessions/my-agent/storage_state \ -H Authorization: Bearer YOUR_CAMOFOX_API_KEY响应示例{ ok: true, userId: my-agent, clearedLive: true, removedPersisted: true }两个值得注意的细节幂等即使没有活跃会话、没有持久化文件也返回成功可以放心重试并发保护同一用户重复触发重置时返回409reset already in progress防止双写竞争典型工作流VNC 可视化登录 → 智能体复用这是 GET 端点最经典的场景完整流程见 plugins/vnc/README.md 的 Workflow 章节创建会话 → 打开登录页 → 通过 noVNC (http://localhost:6080/vnc.html) 人工登录 → GET /storage_state 导出 → persistence 插件自动落盘 → 智能体长期免登录启用方式只需在 camofox.config.json 中开启两个插件{ plugins: { vnc: { enabled: true }, persistence: { enabled: true, profileDir: /data/profiles } } }两者配合时的妙处在于GET 导出会触发session:storage:export事件persistence 插件会直接复用这份内存中的快照写盘见 plugins/persistence/index.js浏览器只被序列化一次导出的内容与落盘的内容保证一致。鉴权与存储细节关注点说明鉴权GET/DELETE 均需CAMOFOX_API_KEY对应的 Bearer Token非回环地址访问时强制存储路径~/.camofox/profiles/SHA256(userId)/storage_state.jsonuserId 哈希化防路径穿越写盘方式原子 tmp 写入 rename崩溃也不会产生半截文件IndexedDB默认不采集在 persistence 配置中设indexedDB: true可捕获快照会明显变大目录覆盖环境变量CAMOFOX_PROFILE_DIR优先级最高常见问题Q导出的是实时状态还是磁盘状态AGET 导出的是活跃会话的实时内存状态若会话已关闭会返回404。磁盘上的快照在会话关闭/关闭服务器时自动刷新。QDELETE 和DELETE /sessions/:userId有什么区别A后者只关闭标签页和会话DELETE storage_state 额外删除持久化文件且关闭时跳过检查点确保下一个会话从零开始。Q导出的 JSON 能直接给 Playwright 用吗A可以。它完全符合 PlaywrightstorageState格式browser.newContext({ storageState: storage_state.json })即可恢复同样的登录态。相关资料完整 REST API 表README.md自动生成的 OpenAPI 规范docs/openapi.json持久化插件设计说明plugins/persistence/AGENTS.mdVNC 插件设计与安全建议plugins/vnc/AGENTS.md服务端入口server.js【免费下载链接】camofox-browserStealth headless browser for AI agents — bypass Cloudflare, bot detection, and anti-scraping. Drop-in Puppeteer/Playwright replacement.项目地址: https://gitcode.com/GitHub_Trending/ca/camofox-browser创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询