变量与密钥
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 Engine | analytics | ❌ | 未绑定时「全球分布」降级为 D1 日志统计 |
绑定名称是固定值
db、r2、analytics 是代码中写死的变量名,修改后程序将无法访问对应资源。
其他配置项说明:
rules:将public/*.html以文本模块、*.jpg(地球贴图)以二进制模块打进 Worker,同源提供,不依赖外部 CDNobservability:默认开启,可在控制台查看 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) |