Skip to content

Cloudflare R2 定时备份配置指南 ​

管理端「数据备份」页提供定时备份与 Cloudflare R2 异地上云。默认每 6 小时运行, 本地与 R2 可分别启用并按保留份数独立轮转;默认本地保留 8 份(约 48 小时)。 关闭本地保留、同时开启 R2 时,系统会生成临时快照用于全量 ZIP 上传,流程结束后清理,不留存 data/backups 快照。

R2 上云不是默认开启的:默认仅执行本地定时备份。定时任务间隔设为 0 会关闭整个任务。

需要填进备份页的四项配置是 Account ID、Access Key ID、Secret Access Key、 Bucket,全部来自 Cloudflare 控制台,下面逐步获取。

第一步:开通 R2 ​

  1. 注册 / 登录 https://dash.cloudflare.com;
  2. 左侧栏找到 R2 对象存储,首次进入会提示开通:需要账号绑定一张 信用卡(或 PayPal)作为付款方式——免费额度内不会扣费: 存储 10 GB/月免费、出口流量(下载恢复)完全免费、A 类操作 100 万次/月 免费。定时备份的量级(8 份几十 MB 的 ZIP)远在免费额度之内;
  3. 开通后进入 R2 概览页。

第二步:创建 Bucket(得到「Bucket」值) ​

  1. R2 页面点 创建存储桶 / Create bucket;
  2. 名称建议专用一个桶,如 spore-backup(3–63 位小写字母、数字与 连字符)——这就是要填的 Bucket 值;
  3. 位置选 自动(APAC 附近即可),其他选项保持默认:
    • 不要开启公开访问(备份含敏感数据,绝不能公开);
    • 不需要版本化、生命周期规则——远端轮转由 Spore 客户端按份数完成。

第三步:获取 Account ID ​

在 R2 概览页(或大多数 R2 子页面)右侧栏「账户 ID / Account ID」 处直接复制:一串 32 位十六进制字符,如 0123456789abcdef0123456789abcdef。

也可以从浏览器地址栏确认:R2 页面 URL 形如 https://dash.cloudflare.com/<Account ID>/r2。

Spore 会用它自动拼出 S3 端点 https://<Account ID>.r2.cloudflarestorage.com,无需单独填写。

第四步:创建 API Token(得到 Access Key ID 与 Secret Access Key) ​

  1. R2 概览页右上角点 管理 R2 API 令牌 / Manage R2 API Tokens (或左侧「R2 → API 令牌」);

  2. 点 创建 API 令牌 / Create API Token;

  3. 权限按最小化原则:

    • 权限选择 对象读和写 / Object Read & Write——只够上传、列出 与删除备份对象,不要选「管理员读和写」;
    • 指定存储桶范围:仅适用于指定的存储桶 → 选中上一步创建的 spore-backup;
    • TTL 可选无限期或设过期时间(过期后需重新生成并回填);
  4. 创建完成后页面只显示一次:

    • 访问密钥 ID / Access Key ID
    • 机密访问密钥 / Secret Access Key

    两串长随机字符,立即存入密码管理器。Secret 遗忘后无法找回,只能删除 令牌重建(重建后回 Spore 更新即可,桶里的备份不受影响)。

第五步:填进备份页并验证 ​

  1. 管理端进入「数据备份」页 →「定时备份与云端同步(Cloudflare R2)」;
  2. 填写四项:Account ID、Access Key ID、Secret Access Key、Bucket, 按需调整间隔与保留份数,打开「上传到 Cloudflare R2」开关;需要仅保留云端副本时, 关闭「保留本地定时备份」开关(仅本地关闭时必须同时启用 R2);
  3. 点 测试连接——用已保存配置做一次只读探测,成功即四项全部有效;
  4. 点 保存配置——即时生效:下一轮定时检查会按新配置执行;等不到 下一轮的话,可以把间隔临时设为较小值验证一次真实上传,再调回 6。

安全口径:R2 凭据只保存在服务器的 data/r2-backup.json(0600 权限), 不进数据库、不进任何备份件、GET 接口只回掩码。换密钥只影响“进出桶”, 桶里已有备份不受影响,更新配置即可。

从 R2 恢复备份 ​

机器还在 / 机器全损,路径相同:

  1. Cloudflare 控制台进入 bucket,下载任一份 spore-full-backup-YYYYMMDD-HHMMSS.zip(也可用 rclone 等 S3 工具拉取);
  2. 本地解压得到 spore.db 与各 JSON 配置文件;
  3. 管理端「数据备份」页:
    • spore.db 走「业务数据库整库恢复」上传(校验 → 确认 → 重启应用);
    • JSON 文件走「JSON 配置文件恢复」(单文件覆盖或打包批量还原)。

常见问题 ​

  • 测试连接报「密钥无效或无权限」:核对 Access Key / Secret 是否复制 完整、令牌权限是否为 Object Read & Write、范围是否限定了正确的桶;
  • 报「存储桶不存在」:Bucket 名称拼写与区域无关,检查是否填成了 别的账号下的桶名;
  • 上传失败会丢备份吗:上传失败会进入事件中心告警,下一轮定时备份会重试(届时生成新快照)。开启本地保留时,本地快照仍可用;仅 R2 模式下临时快照会在上传流程结束后清理。
  • 费用:按上述量级通常为 0(10 GB/月免费 + 零出口流量费);若数据库 很大或份数很多,超出部分约 $0.015/GB·月。