Cloudflare Worker 部署上传服务

Cloudflare Worker 部署上传服务

使用 Cloudflare Worker 部署 ExportX 上传服务是最简单、最经济的方式。本指南将帮助您快速完成部署。

前置条件

在开始之前,请确保您拥有:

  • Cloudflare 账户
  • 已安装并配置 Wrangler CLI (wrangler login)
  • 已创建 R2 存储桶

一键部署

Deploy to Cloudflare Workers

点击上方按钮即可开始一键部署流程。

手动部署步骤

1. 克隆仓库

git clone https://github.com/Edward00Funny/exportx-upload.git
cd exportx-upload

2. 安装依赖

pnpm install

3. 配置 wrangler.jsonc

编辑 wrangler.jsonc 文件,配置您的 Worker 信息:

{
  "name": "exportx-uploader",
  "main": "src/index.ts",
  "compatibility_date": "2023-12-01",
  "account_id": "your-account-id",
  "r2_buckets": [
    {
      "binding": "R2_BUCKET",
      "bucket_name": "your-r2-bucket-name"
    }
  ],
  "vars": {
    "AUTH_SECRET_KEY": "your-secret-token-for-figma",
    "STORAGE_PROVIDER": "R2"
  }
}

4. 绑定 R2 存储桶

在 Cloudflare 控制台中:

  1. 进入 R2 Object Storage
  2. 创建新存储桶或选择现有存储桶
  3. 记录存储桶名称,用于配置

5. 设置环境变量

wrangler.jsoncvars 部分设置以下环境变量:

变量名 示例值 必需 说明
AUTH_SECRET_KEY your-secret-token,another-token 认证密钥,支持多个(逗号分隔)
STORAGE_PROVIDER R2 存储提供商,使用 R2

6. 配置存储桶规则

设置存储桶的访问规则:

{
  "vars": {
    "BUCKET_main_r2_PROVIDER": "R2",
    "BUCKET_main_r2_ALLOWED_PATHS": "images,assets,*",
    "BUCKET_main_r2_EMAIL_WHITELIST": "user@example.com,team@example.com"
  }
}

7. 部署

pnpm run deploy

部署完成后,Wrangler 会显示您的 Worker URL。

验证部署

部署完成后,您可以通过以下方式验证:

健康检查

curl https://your-worker-url.workers.dev/

预期响应:

{
  "status": "ok",
  "message": "ExportX Upload Service"
}

获取存储桶信息

curl -H "Authorization: Bearer your-secret-token" \
     https://your-worker-url.workers.dev/buckets

配置自定义域名

  1. 在 Cloudflare 控制台中,进入 Workers & Pages
  2. 选择您的 Worker
  3. 点击 Custom Domains
  4. 添加您的自定义域名

使用说明

上传文件

curl -X POST \
  -H "Authorization: Bearer your-secret-token" \
  -H "X-User-Email: user@example.com" \
  -F "file=@/path/to/your/file.png" \
  -F "path=images" \
  -F "fileName=custom-name.png" \
  "https://your-worker-url.workers.dev/upload?bucket=main_r2"

响应格式

成功响应:

{
  "url": "https://your-custom-domain.com/images/custom-name.png",
  "fileName": "custom-name.png"
}

故障排除

常见错误

  1. 401 Unauthorized

    • 检查 Authorization 头是否正确
    • 确认 AUTH_SECRET_KEY 配置正确
  2. 403 Forbidden

    • 检查 X-User-Email
    • 确认邮箱在白名单中
  3. R2 绑定错误

    • 确认存储桶名称正确
    • 检查 R2 绑定配置

调试技巧

使用 Wrangler 查看实时日志:

wrangler tail

成本估算

Cloudflare Worker 提供非常经济的定价:

  • 免费额度: 100,000 次请求/天
  • 付费计划: $5/月 + $0.50/百万次请求
  • R2 存储: $0.015/GB/月

对于大多数团队来说,免费额度已经足够使用。

下一步

部署完成后,您可以:

  1. 在 Figma 插件中配置您的上传服务 URL
  2. 设置团队成员的邮箱白名单
  3. 配置多个存储桶用于不同项目
  4. 设置 CDN 加速访问

需要帮助?请查看我们的 完整文档 或联系技术支持。

Ready to get started?

Start your free trial today.