Files
Cloud-Index/docs/storage/r2.md
RhenCloud 22b2339d3c feat: 更新文档并添加 OneDrive 支持
- 在 overview.md 中添加 OneDrive 到存储后端对比
- 更新导航栏和 plume.config 以包含 OneDrive 链接
- 创建详细的 OneDrive 配置指南
- 从 GitHub 和 S3 文档中删除冗余章节
- 将 .env 和缓存目录添加到 .gitignore
2025-11-15 19:37:35 +08:00

168 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Cloudflare R2
createTime: 2025/11/09 00:26:55
permalink: /storage/r2
---
# Cloudflare R2 配置指南
详细的 Cloudflare R2 配置步骤和最佳实践。
## 概述
Cloudflare R2 是一个 S3 兼容的对象存储服务,具有以下优势:
- 💚 存储流量完全免费
- 🌍 全球 CDN 加速
- 💰 请求费用低(每 100 万次 $0.36
- ⚡ 高性能和高可靠性
- 🔄 S3 API 完全兼容
## 账户设置
### 1. 创建 Cloudflare 账户
访问 [Cloudflare 官网](https://dash.cloudflare.com/sign-up) 创建免费账户。
### 2. 激活 R2
1. 登录 Cloudflare 控制面板
2. 左侧菜单选择 "R2"
3. 点击 "开始使用 R2"
4. 阅读条款并确认
## 创建存储桶
### 1. 创建新桶
1. 进入 R2 → "存储桶"
2. 点击 "创建存储桶"
3. 输入存储桶名称(例如 `my-storage`
- 名称必须全局唯一
- 只能包含小写字母、数字和连字符
4. 选择区域(通常选择 "自动" APAC
5. 点击 "创建存储桶"
### 2. 存储桶设置
进入存储桶 → "设置"
- **CORS**: 启用 CORS 以支持跨域请求
- **生命周期规则**: 可选,用于自动删除过期文件
- **版本控制**: 保持禁用(不需要版本历史)
## 获取 API 凭证
### 1. 创建 API Token
1. 进入 R2 → "API 令牌"
2. 点击 "创建 API 令牌"
3. 选择 "Edit" 权限(允许读写)
4. 配置 TTL可选默认无限期
5. 复制 **Token ID****Token Secret**
6. 点击 "创建 API 令牌"
**权限说明:**
- **读取**: 仅允许列表和下载
- **编辑**: 允许读、写和删除(推荐)
- **删除**: 包含删除和管理员操作
### 2. 记录账户 ID
在 R2 仪表盘的任何存储桶页面可以看到 **Account ID**(例如 `a1b2c3d4e5f6g7h8i`
保存以下信息:
```env
ACCESS_KEY_ID = your_token_id
SECRET_ACCESS_KEY = your_token_secret
R2_ACCOUNT_ID = your_account_id
R2_BUCKET_NAME = your-bucket-name
```
## 配置环境变量
编辑 `.env` 文件:
```env
# 存储类型
STORAGE_TYPE=r2
# API 凭证
ACCESS_KEY_ID=your_token_id
SECRET_ACCESS_KEY=your_token_secret
# R2 配置
R2_ENDPOINT_URL=https://your_account_id.r2.cloudflarestorage.com
R2_BUCKET_NAME=your-bucket-name
R2_REGION=auto
# 可选:公开访问配置
R2_PUBLIC_URL=https://pub-your-bucket-name.r2.dev
# 可选:预签名 URL 过期时间(秒,默认 3600
R2_PRESIGN_EXPIRES=3600
```
## 配置公开访问(可选)
若要生成可分享的公开链接,需要配置公开 URL。
### 1. 启用公开访问
1. 进入存储桶 → "设置"
2. 找到 "Public access" 部分
3. 点击 "Allow public access"
### 2. 配置自定义域(推荐)
#### 方式 A使用 R2 默认 URL
```env
R2_PUBLIC_URL=https://pub-your-bucket-name.r2.dev
```
#### 方式 B使用自定义域
1. 进入存储桶 → "设置" → "Custom domains"
2. 点击 "Connect domain"
3. 输入你的域名(例如 `assets.example.com`
4. 在域名 DNS 设置中添加 CNAME 记录:
```
assets.example.com CNAME your-bucket-name.r2.dev
```
5. 点击 "Continue"
配置环境变量:
```env
R2_PUBLIC_URL=https://assets.example.com
```
## 成本示例
假设月均使用情况:
| 指标 | 数值 | 费用 |
|-----|------|------|
| 存储 | 10GB | $0.15 |
| 请求 | 100K | $0.036 |
| 流量 | 1TB | $0 |
| **总计** | - | **$0.186** |
极低成本!✅
## 获取帮助
- 📖 [Cloudflare R2 官方文档](https://developers.cloudflare.com/r2/)
- 🐛 [提交 Issue](https://github.com/RhenCloud/Cloud-Index/issues)
- 💬 [讨论区](https://github.com/RhenCloud/Cloud-Index/discussions)
## 下一步
- 🚀 [快速开始](../guide/quickstart.md) - 开始使用应用
- 📖 [其他存储后端](./overview.md) - 对比其他服务
- 💾 [S3 配置](./s3.md) - AWS S3 配置