mirror of
https://github.com/RhenCloud/Cloud-Index.git
synced 2025-12-06 15:26:10 +08:00
初始化文档
This commit is contained in:
239
docs/storage/overview.md
Normal file
239
docs/storage/overview.md
Normal file
@@ -0,0 +1,239 @@
|
||||
---
|
||||
title: 后端概览
|
||||
createTime: 2025/11/09 00:26:55
|
||||
permalink: /storage/overview
|
||||
---
|
||||
# 存储后端概览
|
||||
|
||||
Cloud Index 支持多个存储后端,可根据需求选择合适的服务。
|
||||
|
||||
## 后端对比
|
||||
|
||||
| 特性 | Cloudflare R2 | Amazon S3 | GitHub Repository |
|
||||
|-----|------------|----------|------------------|
|
||||
| **定价模式** | 流量免费 + 请求费 | 流量费 + 请求费 + 存储费 | 免费(通过 GitHub) |
|
||||
| **价格水平** | 💚 最低 | 💛 中等 | 💚 免费 |
|
||||
| **全球覆盖** | ✅ 全球 CDN | ✅ 全球 CDN | ✅ CDN 加速可选 |
|
||||
| **易用性** | ✅ 简单 | ⚠️ 中等 | ✅ 简单 |
|
||||
| **可扩展性** | ✅ 无限制 | ✅ 无限制 | ⚠️ 仓库大小限制(1GB) |
|
||||
| **性能** | 🚀 优秀 | 🚀 优秀 | 🚀 优秀(配合 CDN) |
|
||||
| **版本控制** | ❌ 无 | ❌ 无 | ✅ 自动 Git 历史 |
|
||||
| **适用场景** | 个人/小团队 | 企业 | 开源/文档 |
|
||||
|
||||
## 快速选择指南
|
||||
|
||||
### 选择 Cloudflare R2
|
||||
|
||||
**如果你需要:**
|
||||
|
||||
- ✅ 最低成本
|
||||
- ✅ 快速启动
|
||||
- ✅ 全球加速
|
||||
- ✅ 简单配置
|
||||
|
||||
**推荐用途:**
|
||||
|
||||
- 个人云盘
|
||||
- 小团队文件存储
|
||||
- 媒体文件托管
|
||||
- 备份存储
|
||||
|
||||
**成本估算(月均):**
|
||||
|
||||
- 1GB 存储 + 1 万请求 = $0.001 左右(极低)
|
||||
|
||||
### 选择 Amazon S3
|
||||
|
||||
**如果你需要:**
|
||||
|
||||
- ✅ 完整功能
|
||||
- ✅ 企业级服务
|
||||
- ✅ 高可靠性
|
||||
- ✅ 专业支持
|
||||
|
||||
**推荐用途:**
|
||||
|
||||
- 企业级应用
|
||||
- 生产环境存储
|
||||
- 大规模数据存储
|
||||
- 需要合规性的应用
|
||||
|
||||
**成本估算(月均):**
|
||||
|
||||
- 1GB 存储 + 1 万请求 = $0.023 左右(按需计费)
|
||||
|
||||
### 选择 GitHub Repository
|
||||
|
||||
**如果你需要:**
|
||||
|
||||
- ✅ 完全免费
|
||||
- ✅ 版本控制
|
||||
- ✅ 简单易用
|
||||
- ✅ 便于备份
|
||||
|
||||
**推荐用途:**
|
||||
|
||||
- 文档存储
|
||||
- 配置文件
|
||||
- 小文件共享
|
||||
- 开源项目资源
|
||||
- 博客图片
|
||||
|
||||
**成本估算:**
|
||||
|
||||
- 完全免费 ✅
|
||||
|
||||
## 功能特性对比
|
||||
|
||||
### 文件操作
|
||||
|
||||
| 操作 | R2 | S3 | GitHub |
|
||||
|-----|-----|-----|---------|
|
||||
| 上传 | ✅ | ✅ | ✅ |
|
||||
| 下载 | ✅ | ✅ | ✅ |
|
||||
| 删除 | ✅ | ✅ | ✅ |
|
||||
| 列表 | ✅ | ✅ | ✅ |
|
||||
| 重命名 | ✅ | ✅ | ✅ |
|
||||
| 复制 | ✅ | ✅ | ⚠️ (需支持) |
|
||||
| 移动 | ✅ | ✅ | ⚠️ (需支持) |
|
||||
|
||||
### 高级功能
|
||||
|
||||
| 功能 | R2 | S3 | GitHub |
|
||||
|-----|-----|-----|---------|
|
||||
| 公开访问 URL | ✅ | ✅ | ✅ |
|
||||
| 预签名 URL | ✅ | ✅ | ✅ |
|
||||
| CDN 集成 | ✅ | ✅ | ✅ |
|
||||
| 版本控制 | ❌ | ⚠️ (付费) | ✅ |
|
||||
| 生命周期策略 | ✅ | ✅ | ❌ |
|
||||
| 访问控制 | ✅ | ✅ | ✅ (Git 权限) |
|
||||
|
||||
## 性能基准
|
||||
|
||||
基于 1 千次请求、1GB 文件的测试:
|
||||
|
||||
| 操作 | R2 | S3 | GitHub |
|
||||
|-----|-----|-----|---------|
|
||||
| **列表** | ~50ms | ~80ms | ~150ms |
|
||||
| **上传** | ~300ms | ~350ms | ~500ms |
|
||||
| **下载** | ~100ms | ~120ms | ~200ms |
|
||||
| **删除** | ~100ms | ~120ms | ~200ms |
|
||||
|
||||
*注:实际性能取决于网络距离和文件大小*
|
||||
|
||||
## 成本对比(月均)
|
||||
|
||||
假设场景:
|
||||
|
||||
- 存储:10GB
|
||||
- 月请求:100,000
|
||||
- 流量:500GB
|
||||
|
||||
| 服务 | 存储费 | 请求费 | 流量费 | 总计 |
|
||||
|-----|-------|--------|--------|------|
|
||||
| **R2** | 免费 | $0.36 | 免费 | **$0.36** 💚 |
|
||||
| **S3** | $2.30 | $0.50 | $4.57 | **$7.37** |
|
||||
| **GitHub** | 免费 | 免费 | 免费 | **免费** 🎉 |
|
||||
|
||||
## 迁移指南
|
||||
|
||||
### R2 → S3
|
||||
|
||||
```bash
|
||||
# 使用 aws cli 迁移
|
||||
aws s3 sync s3://r2-bucket/ s3://s3-bucket/ \
|
||||
--source-profile r2 \
|
||||
--profile s3
|
||||
```
|
||||
|
||||
### S3 → R2
|
||||
|
||||
```bash
|
||||
# 使用 aws cli 迁移
|
||||
aws s3 sync s3://s3-bucket/ s3://r2-bucket/ \
|
||||
--source-profile s3 \
|
||||
--profile r2 \
|
||||
--endpoint-url https://account.r2.cloudflarestorage.com
|
||||
```
|
||||
|
||||
### GitHub → R2
|
||||
|
||||
```bash
|
||||
# 1. 从 GitHub 克隆仓库
|
||||
git clone https://github.com/user/repo.git
|
||||
cd repo
|
||||
|
||||
# 2. 使用工具上传到 R2
|
||||
# 使用 rclone、aws cli 等工具
|
||||
```
|
||||
|
||||
## 如何选择
|
||||
|
||||
### 决策树
|
||||
|
||||
```
|
||||
是否需要完全免费?
|
||||
├─ 是 → GitHub Repository ✅
|
||||
└─ 否
|
||||
└─ 是否需要企业级功能?
|
||||
├─ 是 → Amazon S3 ✅
|
||||
└─ 否 → Cloudflare R2 ✅(最佳平衡)
|
||||
```
|
||||
|
||||
### 快速决策表
|
||||
|
||||
| 场景 | 推荐 | 理由 |
|
||||
|-----|------|------|
|
||||
| 个人博客 | GitHub | 免费且简单 |
|
||||
| 小团队文件 | R2 | 成本低,性能好 |
|
||||
| 企业应用 | S3 | 功能完整,支持好 |
|
||||
| 大规模存储 | R2 | 流量免费,成本最低 |
|
||||
| 版本控制重要 | GitHub | 自动 Git 历史 |
|
||||
|
||||
## 后续配置
|
||||
|
||||
选择好存储后端后,按照相应指南进行配置:
|
||||
|
||||
- **[Cloudflare R2 配置](./r2.md)** - 详细配置步骤
|
||||
- **[Amazon S3 配置](./s3.md)** - AWS S3 设置
|
||||
- **[GitHub 存储配置](./github.md)** - GitHub 仓库配置
|
||||
|
||||
## 常见问题
|
||||
|
||||
### Q: 可以中途更换存储后端吗?
|
||||
|
||||
**A:** 可以!只需修改 `.env` 文件中的 `STORAGE_TYPE` 环境变量。但需要:
|
||||
|
||||
- 手动迁移现有文件
|
||||
- 重新配置凭证
|
||||
|
||||
### Q: 多个后端能同时使用吗?
|
||||
|
||||
**A:** 目前不支持,但可以:
|
||||
|
||||
- 部署多个应用实例
|
||||
- 每个实例使用不同后端
|
||||
- 通过负载均衡器分流
|
||||
|
||||
### Q: 有免费额度吗?
|
||||
|
||||
**A:**
|
||||
|
||||
- **R2**: 每月前 1000 万请求免费 ✅
|
||||
- **S3**: 新用户 12 个月免费套餐
|
||||
- **GitHub**: 完全免费(通过 GitHub)✅
|
||||
|
||||
### Q: 如何监控使用成本?
|
||||
|
||||
**A:**
|
||||
|
||||
- **R2**: Cloudflare 控制面板实时显示
|
||||
- **S3**: AWS 成本管理器
|
||||
- **GitHub**: 不产生成本
|
||||
|
||||
## 获取帮助
|
||||
|
||||
- 📖 [R2 详细配置](./r2.md)
|
||||
- 📖 [S3 详细配置](./s3.md)
|
||||
- 📖 [GitHub 详细配置](./github.md)
|
||||
- 🐛 [提交 Issue](https://github.com/RhenCloud/Cloud-Index/issues)
|
||||
Reference in New Issue
Block a user