API 参考
CloneWebsite 核心扩展及 Web 应用的 API 参考
扩展通信 API (Message Passing)
如果您希望在自己的脚本中与 CloneWebsite 扩展进行交互,可以使用 Chrome 的消息传递 API。
开始克隆请求
向扩展发送克隆指令,强制开始捕获当前页面。
// 向扩展发送消息 (需要知道扩展的 ID)
const EXTENSION_ID = "your-extension-id";
chrome.runtime.sendMessage(EXTENSION_ID, {
type: "START_CLONE",
payload: {
options: {
extractImages: true,
removeScripts: true,
inlineStyles: true
}
}
}, (response) => {
if (response.success) {
console.log("Clone process started");
} else {
console.error("Clone failed:", response.error);
}
});参数说明
extractImages(boolean): 是否将图片转换为独立文件,默认true。removeScripts(boolean): 是否移除所有的<script>标签,默认true。inlineStyles(boolean): 是否强制计算样式并内联,默认true。
Web 应用 REST API
Web 应用提供了一套完整的 REST API 用于管理克隆历史记录。所有需要认证的端点都需要在 Header 中携带 Bearer Token。
认证
Authorization: Bearer <your-session-token>1. 获取所有克隆记录
GET /api/v1/clones响应示例:
{
"data": [
{
"id": "cln_123456",
"url": "https://example.com",
"title": "Example Domain",
"createdAt": "2023-10-27T10:00:00Z",
"sizeBytes": 1048576,
"downloadUrl": "https://storage.clonewebsite.app/cln_123456.zip"
}
],
"meta": {
"total": 1,
"page": 1
}
}2. 获取上传预签名 URL (Presigned URL)
用于扩展将生成的 ZIP 包直接安全地上载至云存储(如 AWS S3 或 Cloudflare R2),而无需经过应用服务器中转。
POST /api/v1/upload/request请求体:
{
"filename": "example-com.zip",
"contentType": "application/zip",
"size": 1048576
}响应示例:
{
"uploadUrl": "https://s3.region.amazonaws.com/bucket/path?signature=...",
"cloneId": "cln_123456",
"expiresIn": 3600
}3. 删除克隆记录
DELETE /api/v1/clones/:id响应示例:
{
"success": true,
"message": "Clone record deleted successfully"
}
CloneWebsite 文档