生成单文件 HTML
把样式、脚本和报告数据收敛到一个 HTML 字符串,先做大小和敏感信息检查。
PagePort 是一个 Cloudflare-native 的 HTML 分享服务。Agent 上传一个 HTML 字符串,Worker 返回一个人类可打开的 URL。
curl -X POST "https://agent-html-share.zhouxiansheng1958.workers.dev/v1/publish" \
-H "authorization: Bearer $PAGEPORT_AGENT_TOKEN" \
-H "content-type: application/json" \
-d '{
"title": "Daily report",
"html": "<!doctype html><html>...</html>",
"ttl_seconds": 604800
}'
Agent workflow
首页直接服务接入流程:让 Agent 清楚如何调用 API,让人类知道这个链接如何被保存、展示和过期。
把样式、脚本和报告数据收敛到一个 HTML 字符串,先做大小和敏感信息检查。
带上 Bearer token、title、ttl_seconds、metadata;有 password 时自动进入加密模式。
人类打开 /v/:id 查看 viewer。公开页走 /raw/:id,加密页先输入密码再渲染。
Security model
R2 bucket 不公开,所有访问必须经过 Worker。Agent token 和访问密码都不以明文形式保存。
{
"id": "f06a313f53133894484ad934",
"url": "https://agent-html-share.zhouxiansheng1958.workers.dev/v/f06a313f53133894484ad934",
"mode": "public",
"expires_at": "2026-06-02T02:19:52.814Z",
"size_bytes": 97,
"sha256": "f556ce66b10a7900b9244b696b25fd6c58e1722f91736aca3f4526ee9affeca7"
}
Request schema
第一版只保留最小协议面,避免 Agent 在项目、仓库、构建系统之间来回切换。
html | 必填。单个 HTML 字符串,默认最大 2MB。 |
|---|---|
title | 可选。viewer 顶部标题。 |
ttl_seconds | 可选。默认 604800,范围 300 到 2592000。 |
password | 可选。空值为 public,非空为 encrypted。 |
metadata | 可选。JSON metadata,会存到 D1。 |
PAGEPORT_ENDPOINT=https://agent-html-share.zhouxiansheng1958.workers.dev/v1/publish
PAGEPORT_AGENT_TOKEN=...
PAGEPORT_TTL_SECONDS=604800
Cloudflare deploy
点击官方 Deploy 按钮会 clone 公开仓库,并根据 Wrangler 配置创建 Worker、R2 bucket 和 D1 database。
Cloudflare 会 fork/clone 项目,自动 provision 绑定资源,并运行 deploy 脚本。部署完成后打开你的 Worker 首页创建第一个 agent token。
This instance has no agents yet. Create the first token, copy it once, and store it in your agent environment.
| 1 | 点击 Deploy to Cloudflare,选择自己的 Cloudflare 账号和仓库名。 |
|---|---|
| 2 | Cloudflare 根据 wrangler.toml 创建 R2、D1,并执行 migration-aware deploy。 |
| 3 | 打开部署后的 Worker 首页,创建第一个 agent token。 |
| 4 | 把 PAGEPORT_ENDPOINT 和 PAGEPORT_AGENT_TOKEN 写入 Agent 环境变量。 |
把 token 写进 Agent 环境变量,生成 HTML 后调用 publish API,最终只把 URL、mode 和 expires_at 返回给用户。