mirror of
https://github.com/RhenCloud/Cloud-Index.git
synced 2025-12-06 23:36:10 +08:00
240 lines
5.6 KiB
Markdown
240 lines
5.6 KiB
Markdown
---
|
||
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)
|