在宝塔面板中备份到 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 的全球网络优化访问速度。

评论

此博客中的热门博文

2025年中国色情网站成人网站排行榜

2025中文色情网站排行 探花论坛 9tanhua.com排行不错