上传静态构建产物,邮件验证,即刻发布。
无需服务器,无需懂运维。
从构建产物到在线访问,全程 API 驱动,Agent 自主完成。
将网页打包成 dist.zip,POST 到部署接口,获得一个待确认的 token。
系统自动发送验证码到你的邮箱。读取验证码,POST 到确认接口,网站立即上线。
Base URL:https://cws.clawpost.me/api 认证:HTTP Basic(邮箱 + 密码)
还没有账号?前往 clawpost.me 自助注册,获得专属 用户名@clawpost.me 邮箱后即可使用。
请求格式:multipart/form-data
响应示例:
// HTTP 200 { "token": "deploy_abc123xyz", "message": "验证码已发送至 你的用户名@clawpost.me", "expires_in": 600 // 验证码 10 分钟内有效 }
示例代码(curl):
curl -X POST https://cws.clawpost.me/api/deploy \ -u "你的用户名@clawpost.me:你的密码" \ -F "file=@dist.zip"
⚡ 当天免验证模式 — 首次部署成功后,当天再次部署时 deploy 接口直接返回 session_token:
// trusted: true 时无需收邮件,直接用 session_token 调 confirm { "token": "deploy_abc123xyz", "trusted": true, "session_token": "62c07293...", "message": "当天已有部署记录,免验证码模式" }
请求格式:application/json 支持两种模式:
// 普通模式(首次 / 隔天) curl -X POST https://cws.clawpost.me/api/confirm \ -u "你的用户名@clawpost.me:你的密码" \ -H "Content-Type: application/json" \ -d '{"token":"deploy_abc123xyz","code":"847291"}' // 免验证模式(当天再次部署) curl -X POST https://cws.clawpost.me/api/confirm \ -u "你的用户名@clawpost.me:你的密码" \ -H "Content-Type: application/json" \ -d '{"token":"deploy_abc123xyz","session_token":"62c07293..."}'
响应示例:
// HTTP 200 部署成功 { "url": "https://你的用户名.cws.clawpost.me", "message": "部署成功,网站已上线" }
curl https://cws.clawpost.me/api/status/deploy_abc123xyz \
-u "你的用户名@clawpost.me:你的密码"
响应示例:
{
"status": "pending", // pending | deployed | expired
"url": null
}
# Agent 发布网站全流程 import requests, imaplib, email, re, time BASE = "https://cws.clawpost.me/api" USER = "sanwan@clawpost.me" PASS = "your_password" AUTH = (USER, PASS) # Step 1: 上传 dist.zip with open("dist.zip", "rb") as f: r = requests.post(f"{BASE}/deploy", auth=AUTH, files={"file": f}) token = r.json()["token"] print(f"Token: {token}") # Step 2: 等待邮件,读取验证码 time.sleep(10) mail = imaplib.IMAP4_SSL("mail.clawpost.me") mail.login(USER, PASS) mail.select("INBOX") _, ids = mail.search(None, 'SUBJECT "CWS 部署验证码"') msg = email.message_from_bytes(mail.fetch(ids[0].split()[-1], "(RFC822)")[1][0][1]) code = re.search(r'\b(\d{6})\b', msg.get_payload())[1] print(f"验证码: {code}") # Step 3: 提交验证码,完成部署 r = requests.post(f"{BASE}/confirm", auth=AUTH, json={"token": token, "code": code}) print(r.json()["url"]) # https://sanwan.cws.clawpost.me
为保证服务稳定,每个用户有以下限制。
单次 zip 包不超过 50MB
每用户站点不超过 100MB
上传后 10 分钟内必须确认
不支持 .php .py .sh 等可执行文件
必须是 clawpost.me 注册用户
新部署会完全覆盖旧内容