Skip to content

变量与密钥 ​

cloud-r2pan 的配置分为三层:Cloudflare Secret(敏感信息)、wrangler.jsonc(资源绑定)、管理后台设置(业务配置,存 D1)。本章介绍前两层,业务配置见系统设置。

Cloudflare Secret ​

Secret 通过控制台(Worker → Settings → Variables and Secrets)或命令行设置:

bash
npx wrangler secret put <名称>
名称必填用途
admin✅管理后台初始登录密码,同时是全站 AES-GCM 加密主密钥
totp_recovery❌2FA 万能恢复码,优先于 D1 中存储的消耗型恢复码
turnstile_sitekey❌Turnstile 前端 SiteKey(也可在后台设置里覆盖)
turnstile_secret❌Turnstile 后端校验密钥,不配则 Turnstile 整体不生效

关于 admin

  • 它既是登录密码又是加密主密钥,务必使用强密码
  • 部署后建议在 管理后台 → 设置 → 登录密码 设置面板密码,将登录与主密钥解耦,详见设置总览

S3 / WebDAV 凭证不走 Secret

S3 的 Access Key / Secret Key、WebDAV 密码等存储在 D1 settings 表中(敏感字段用 admin 密钥 AES-GCM 加密),直接在管理后台填写即可,避免在 Cloudflare 控制台维护多套 Secret。

wrangler.jsonc 资源绑定 ​

jsonc
{
  "name": "cloud-r2pan",
  "main": "src/index.ts",

  // D1 数据库 —— 必需,database_id 填 wrangler d1 create 的输出
  "d1_databases": [
    { "binding": "db", "database_name": "cloud-r2pan", "database_id": "" }
  ],

  // R2 存储桶 —— 默认存储后端,改用外部 S3 / WebDAV 时可注释掉
  "r2_buckets": [
    { "binding": "r2", "bucket_name": "cloud-r2pan" }
  ],

  // Workers Analytics Engine —— 可选,驱动「全球分布」精确经纬度数据
  // 未绑定时自动降级使用 D1 download_logs
  "analytics_engine_datasets": [
    { "binding": "analytics", "dataset": "r2pan_downloads" }
  ]
}
绑定Variable name必填说明
D1 数据库db✅全部业务数据,首次访问自动建表
R2 存储桶r2默认存储改用外部存储后可注释,见对象存储
Analytics Engineanalytics❌未绑定时「全球分布」降级为 D1 日志统计

绑定名称是固定值

db、r2、analytics 是代码中写死的变量名,修改后程序将无法访问对应资源。

其他配置项说明:

  • rules:将 public/*.html 以文本模块、*.jpg(地球贴图)以二进制模块打进 Worker,同源提供,不依赖外部 CDN
  • observability:默认开启,可在控制台查看 Worker 日志

本地开发变量 .dev.vars ​

本地运行 npm run dev 时,Secret 由项目根目录的 .dev.vars 文件提供(已被 .gitignore 排除):

bash
echo 'admin=本地测试密码' > .dev.vars

本地 R2 / D1 由 Miniflare 自动模拟,不会写入真实数据。

配置修改后生效时间 ​

配置层生效方式
Secret / 绑定保存或重新 npm run deploy 后立即生效
管理后台设置保存后最多 5 秒内全量生效(Worker 内存缓存 TTL)