S3 与 Cloudflare R2
TG Vault 支持 S3 兼容对象存储。Endpoint、Region、Bucket 和密钥须属于同一服务,不能用控制台或公开下载地址代替 API 地址。
共同配置
在 设置 → 存储 → 添加存储 → S3 填写:
| 字段 | 内容 |
|---|---|
| 存储名称 | 显示备注 |
| Endpoint | 完整 HTTPS S3 API 地址 |
| Region | 桶所在区域;R2 填 auto |
| Bucket | 桶名,不带协议或对象路径 |
| AccessKey ID / Secret | 同一对 S3 访问密钥,不是登录密码 |
| 使用路径式访问 | 按提供方要求选择,MinIO 等可能需要 |
不支持需要 SessionToken 的三段 STS 临时凭据。请求由后端发起,无需为 TG Vault 开放桶 CORS 或公共读写权限。
Cloudflare R2 分步配置
- 在 Cloudflare R2 Object Storage 创建或选择桶,确认计费规则。
- 创建仅作用于目标桶的 R2 S3 API 对象读写凭据,保存 Access Key ID 和 Secret Access Key。
- 复制控制台提供的 S3 API Endpoint,通常为
https://<ACCOUNT_ID>.r2.cloudflarestorage.com,特殊管辖区域以实际地址为准。 - 在 TG Vault 填入 Endpoint 和 Bucket,Region 填
auto。 - 点击 验证并添加,按需 设为默认。上传后在桶内确认对象并下载检查。
R2 S3 密钥不是 Cloudflare 账号密码或通用 API Token;r2.dev 也不能代替 S3 API Endpoint。
其他提供方
| 服务 | 参数来源与注意事项 |
|---|---|
| AWS S3 | 使用桶所在 Region 和对应 Endpoint,授予最小 IAM 权限 |
| Backblaze B2 | 使用桶的 S3 Endpoint、Region 和 S3 兼容 Application Key,保留列举及对象读写权限 |
| MinIO | 向管理员获取 API 地址与 Region;管理控制台端口不是 S3 API,通常需路径式访问 |
S3 接入要求公网 HTTPS,拒绝私有、回环和保留地址。WebDAV 的内网开关不放宽 S3。
错误先按阶段排查
| 报错或现象 | 检查 |
|---|---|
SignatureDoesNotMatch | 密钥配对、Region、Endpoint、路径式访问、服务器时钟 |
AccessDenied | 桶名、策略资源、列举及对象操作权限 |
| TLS/地址被拒 | 证书与实际网络端点 |
| 连接成功但上传失败 | 写入权限、配额、文件大小、源站或代理限制 |
测试删除权限请用新对象。移除 TG Vault 账户不删除桶内对象,对象也不包含在本地备份中。
