在宝塔面板中备份到 Cloudflare R2
### **Cloudflare R2 特点**
1. **兼容 S3 API**
支持标准的 S3 API,可直接使用现有的 S3 工具(如 `aws-cli`、`rclone`)或 SDK 进行操作。
2. **无数据出口费用**
与 AWS S3 不同,R2 不收取数据传出费用(Egress),适合需要降低带宽成本的场景。
3. **集成 Cloudflare 生态**
可与 Cloudflare CDN、Workers、Images 等服务无缝结合,例如通过 CDN 缓存 R2 中的静态资源。
4. **低成本存储**
按存储容量和请求次数计费,适合长期存储或归档数据。
---
### **在宝塔面板中备份到 Cloudflare R2**
由于 R2 兼容 S3 API,可以通过以下方法集成:
#### **方法 1:使用宝塔「计划任务」+ S3 兼容配置**
1. **在 Cloudflare 创建 R2 存储桶**
- 登录 Cloudflare 控制台 > **R2** > **创建存储桶**。
- 记下存储桶名称(如 `my-backup-bucket`)。
2. **生成 R2 API 密钥**
- 进入 **R2** > **管理密钥** > **创建密钥**。
- 保存 `Access Key ID` 和 `Secret Access Key`。
3. **配置宝塔计划任务**
- 进入宝塔面板 > **计划任务** > **添加备份任务**。
- **备份到**:选择「AWS S3」。
- 填写以下参数:
- **Access Key ID**: R2 的 Access Key。
- **Secret Access Key**: R2 的 Secret Key。
- **Bucket 名称**: R2 存储桶名称。
- **区域(Region)**: 填写 `auto`(R2 为全局服务,无需指定具体区域)。
- **端点(Endpoint)**: 填写 `https://<账户ID>.r2.cloudflarestorage.com`
(账户ID可在 R2 控制台的 URL 中找到,例如 `https://dash.cloudflare.com/<账户ID>/r2`)。
- 保存并执行任务。
---
#### **方法 2:通过 Rclone 挂载 R2**
1. **安装并配置 Rclone**
```bash
curl https://rclone.org/install.sh | sudo bash
rclone config
```
- 新建远程配置,选择 **S3 兼容服务**。
- 填写以下参数:
- `provider`: 选择 `Cloudflare R2`。
- `env_auth`: 填 `false`。
- `access_key_id`: R2 的 Access Key。
- `secret_access_key`: R2 的 Secret Key。
- `endpoint`: `https://<账户ID>.r2.cloudflarestorage.com`。
- 其他参数按默认设置。
2. **挂载 R2 到本地目录**
```bash
mkdir -p /mnt/r2-backup
rclone mount remote:my-backup-bucket /mnt/r2-backup --allow-other --daemon
```
3. **在宝塔中设置备份到挂载目录**
- 进入宝塔 > **计划任务** > **备份到本地目录**,路径填写 `/mnt/r2-backup`。
---
#### **方法 3:使用 AWS CLI 脚本**
1. **配置 AWS CLI 连接 R2**
```bash
aws configure
```
- 填写 R2 的 Access Key 和 Secret Key。
- 区域填写 `auto`,输出格式 `json`。
2. **编写备份脚本**
```bash
#!/bin/bash
# 备份网站
tar -czf /backup/website-$(date +%Y%m%d).tar.gz /www/wwwroot/your-site
# 上传到 R2
aws s3 --endpoint-url https://<账户ID>.r2.cloudflarestorage.com \
cp /backup/website-$(date +%Y%m%d).tar.gz s3://my-backup-bucket/
# 清理本地文件
rm -f /backup/website-*.tar.gz
```
3. **在宝塔中添加脚本任务**
- 进入宝塔 > **计划任务** > **Shell 脚本**,粘贴上述脚本并设置执行周期。
---
### **注意事项**
1. **端点(Endpoint)格式**
R2 的 S3 端点必须包含账户 ID,格式为:
`https://<账户ID>.r2.cloudflarestorage.com`。
2. **权限控制**
在 Cloudflare R2 控制台中,通过 **存储桶策略** 或 **Workers** 脚本限制访问权限。
3. **性能优化**
R2 的延迟可能略高于 AWS S3,建议结合 Cloudflare CDN 缓存频繁访问的文件。
---
### **总结**
Cloudflare R2 是一个低成本、兼容 S3 的对象存储方案,适合与宝塔面板结合使用。通过上述方法,你可以轻松将备份数据存储到 R2,同时利用 Cloudflare 的全球网络优化访问速度。
评论
发表评论