mirror of
https://github.com/RhenCloud/Cloud-Index.git
synced 2025-12-06 15:26:10 +08:00
- 在 overview.md 中添加 OneDrive 到存储后端对比 - 更新导航栏和 plume.config 以包含 OneDrive 链接 - 创建详细的 OneDrive 配置指南 - 从 GitHub 和 S3 文档中删除冗余章节 - 将 .env 和缓存目录添加到 .gitignore
168 lines
3.9 KiB
Markdown
168 lines
3.9 KiB
Markdown
---
|
||
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 配置
|