S3 兼容存储备份 · Cloudflare R2 / AWS / MinIO
S3 兼容存储
RikkaHub 可以连接任何实现了 S3 API的对象存储服务。范围极广:
| 服务 | 说明 | 推荐场景 |
|---|---|---|
| Cloudflare R2 | 免费额度大(每月 10GB 存储 + 100 万次请求) | 个人用户首选 |
| AWS S3 | 行业标准,成本按存储 + 请求计费 | 已有 AWS 账户 |
| MinIO | 开源自建 S3 兼容服务 | 有自用服务器 |
| Backblaze B2 | 知名低成本备份服务 | 云端备份专用 |
| 任何实现 S3 API 的服务 | 通用 | 你偏好的任何 S3 端点 |
配置 S3
- 打开 设置 → 备份 → S3 标签页
- 填写以下信息:
| 字段 | 说明 |
|---|---|
| 端点(Endpoint) | S3 兼容端点 URL |
| Access Key ID | API 访问密钥 ID |
| Secret Access Key | API 密钥 Secret(默认遮蔽) |
| 存储桶(Bucket) | 用于存储备份的 bucket 名 |
| 区域 | Cloudflare R2 用 auto;AWS 用区域代码如 us-east-1 |
| 聊天记录 | 开关 |
| 文件 | 开关 |
- 点击 测试连接 → 确认
- 保存
端点 URL 速查
| 服务 | 端点 URL |
|---|---|
| Cloudflare R2 | 账户专属 R2 端点(在 Cloudflare 控制台里找) |
| AWS S3 | https://s3.amazonaws.com 或区域端点如 https://s3.us-east-1.amazonaws.com |
| MinIO | http://你的服务器地址:9000 |
| Backblaze B2 | https://s3.us-east-005.backblazeb2.com(端点因区域而异) |
安全最佳实践
创建专用 IAM 用户 / 令牌
强烈建议为 RikkaHub 创建一个只有必要权限的专用密钥:
需要的权限:
s3:GetObject(读取备份恢复)s3:PutObject(上传备份)s3:DeleteObject(删除旧备份)s3:ListBucket(列出可用备份)
不需要的权限:
s3:CreateBucket(存储桶提前建好)- 任何其他 bucket 的权限
Cloudflare R2 的权限配置
R2 使用 API 令牌而非传统 AWS IAM:
- Cloudflare 控制台 → R2 → Manage R2 API Tokens
- 创建令牌 → 选择"Edit"权限(或更精细的自定义)
- 生成 Access Key 和 Secret Key → 粘贴到 RikkaHub
AWS S3 的 IAM 策略示例
给专用用户附加一个只在你的 bucket 上有必要权限的策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:PutObject", "s3:DeleteObject"],
"Resource": "arn:aws:s3:::你的bucket名/*"
},
{
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::你的bucket名"
}
]
}
立即备份 & 恢复
操作和 WebDAV 完全一致:
- 立即备份:生成 ZIP 上传到 S3
- 恢复:列出远程备份 → 选择 → 重启 RikkaHub
- 删除备份:清理远程旧文件
Cloudflare R2 为什么是首选
| 维度 | Cloudflare R2 | 其他 S3 服务 |
|---|---|---|
| 免费额度 | 每月 10GB 存储 + 100 万请求 | 有限或收费 |
| 成本 | 超出免费额度后仍然便宜 | 按存储 + 请求计费 |
| 网络 | 全球 CDN | 取决于区域 |
| 国内访问 | Cloudflare 域名需要考虑 GFW | 看具体区域 |
个人用户:如果能正常访问 Cloudflare,R2 是成本最低的选择。如果 Cloudflare 受限,考虑本地 MinIO + WebDAV,或国内云服务的对象存储。
S3 vs WebDAV 怎么选
| 你的情况 | 推荐 |
|---|---|
| 已有 Nextcloud / NAS | WebDAV |
| Cloudflare 用户 | S3(R2) |
| 不想维护服务器 | S3(R2 / Backblaze) |
| 自己有自建 S3 | S3 |
| 都没有 | Cloudflare R2(免费额度大) |
两者可以同时配置——双重保险。RikkaHub 的备份页面是独立标签页,互不干扰。