190 lines
3.8 KiB
Markdown
190 lines
3.8 KiB
Markdown
![]() |
# S3存储测试服务推荐
|
|||
|
|
|||
|
## 免费云端S3服务
|
|||
|
|
|||
|
### 1. Tebi (强烈推荐)
|
|||
|
|
|||
|
- **免费额度**: 25GB存储 + 250GB传输量(永久免费)
|
|||
|
- **网站**: https://tebi.io
|
|||
|
- **特点**:
|
|||
|
- S3兼容API
|
|||
|
- 地理分布式存储
|
|||
|
- 支持FTP/FTPS
|
|||
|
- 无需信用卡注册
|
|||
|
- 提供个人助手支持
|
|||
|
|
|||
|
**配置示例**:
|
|||
|
|
|||
|
```env
|
|||
|
STORAGE_TYPE=s3
|
|||
|
S3_BUCKET=your-bucket-name
|
|||
|
S3_REGION=auto
|
|||
|
S3_ACCESS_KEY_ID=your-access-key
|
|||
|
S3_SECRET_ACCESS_KEY=your-secret-key
|
|||
|
S3_ENDPOINT=https://s3.tebi.io
|
|||
|
```
|
|||
|
|
|||
|
### 2. Tigris
|
|||
|
|
|||
|
- **免费额度**: 有免费层级
|
|||
|
- **网站**: https://www.tigrisdata.com
|
|||
|
- **特点**:
|
|||
|
- 全球分布式S3兼容存储
|
|||
|
- 零出站费用
|
|||
|
- 针对AI工作负载优化
|
|||
|
|
|||
|
**配置示例**:
|
|||
|
|
|||
|
```env
|
|||
|
STORAGE_TYPE=s3
|
|||
|
S3_BUCKET=your-bucket-name
|
|||
|
S3_REGION=auto
|
|||
|
S3_ACCESS_KEY_ID=your-access-key
|
|||
|
S3_SECRET_ACCESS_KEY=your-secret-key
|
|||
|
S3_ENDPOINT=https://fly.storage.tigris.dev
|
|||
|
```
|
|||
|
|
|||
|
### 3. AWS S3 免费套餐
|
|||
|
|
|||
|
- **免费额度**: 5GB存储 + 20,000个GET + 2,000个PUT(12个月)
|
|||
|
- **网站**: https://aws.amazon.com/s3/
|
|||
|
- **注意**: 需要信用卡验证
|
|||
|
|
|||
|
**配置示例**:
|
|||
|
|
|||
|
```env
|
|||
|
STORAGE_TYPE=s3
|
|||
|
S3_BUCKET=your-bucket-name
|
|||
|
S3_REGION=us-east-1
|
|||
|
S3_ACCESS_KEY_ID=your-access-key
|
|||
|
S3_SECRET_ACCESS_KEY=your-secret-key
|
|||
|
# AWS 使用默认endpoint,不需要设置S3_ENDPOINT
|
|||
|
```
|
|||
|
|
|||
|
## 本地测试工具
|
|||
|
|
|||
|
### 1. MinIO (推荐本地开发)
|
|||
|
|
|||
|
最流行的自托管S3兼容存储
|
|||
|
|
|||
|
**Docker快速启动**:
|
|||
|
|
|||
|
```bash
|
|||
|
docker run -p 9000:9000 -p 9001:9001 \
|
|||
|
--name minio \
|
|||
|
-e "MINIO_ROOT_USER=minioadmin" \
|
|||
|
-e "MINIO_ROOT_PASSWORD=minioadmin" \
|
|||
|
-v /tmp/minio-data:/data \
|
|||
|
quay.io/minio/minio server /data --console-address ":9001"
|
|||
|
```
|
|||
|
|
|||
|
**配置示例**:
|
|||
|
|
|||
|
```env
|
|||
|
STORAGE_TYPE=s3
|
|||
|
S3_BUCKET=test-bucket
|
|||
|
S3_REGION=us-east-1
|
|||
|
S3_ACCESS_KEY_ID=minioadmin
|
|||
|
S3_SECRET_ACCESS_KEY=minioadmin
|
|||
|
S3_ENDPOINT=http://localhost:9000
|
|||
|
```
|
|||
|
|
|||
|
### 2. S3Mock (Java项目测试)
|
|||
|
|
|||
|
轻量级S3模拟服务器
|
|||
|
|
|||
|
**Docker启动**:
|
|||
|
|
|||
|
```bash
|
|||
|
docker run -p 9090:9090 -p 9191:9191 -t adobe/s3mock
|
|||
|
```
|
|||
|
|
|||
|
### 3. LocalStack (完整AWS模拟)
|
|||
|
|
|||
|
模拟完整AWS服务栈
|
|||
|
|
|||
|
**Docker启动**:
|
|||
|
|
|||
|
```bash
|
|||
|
docker run --rm -it -p 4566:4566 -p 4510-4559:4510-4559 localstack/localstack
|
|||
|
```
|
|||
|
|
|||
|
## 快速测试步骤
|
|||
|
|
|||
|
### 1. 选择服务并注册
|
|||
|
|
|||
|
推荐从Tebi开始,因为:
|
|||
|
|
|||
|
- 免费额度最大
|
|||
|
- 无需信用卡
|
|||
|
- 注册简单
|
|||
|
|
|||
|
### 2. 获取凭据
|
|||
|
|
|||
|
注册后在控制面板获取:
|
|||
|
|
|||
|
- Access Key ID
|
|||
|
- Secret Access Key
|
|||
|
- 存储桶名称
|
|||
|
- Endpoint URL
|
|||
|
|
|||
|
### 3. 配置环境变量
|
|||
|
|
|||
|
```bash
|
|||
|
export STORAGE_TYPE=s3
|
|||
|
export S3_BUCKET=your-bucket-name
|
|||
|
export S3_REGION=auto
|
|||
|
export S3_ACCESS_KEY_ID=your-access-key
|
|||
|
export S3_SECRET_ACCESS_KEY=your-secret-key
|
|||
|
export S3_ENDPOINT=https://s3.tebi.io
|
|||
|
```
|
|||
|
|
|||
|
### 4. 测试上传
|
|||
|
|
|||
|
```bash
|
|||
|
# 启动你的应用
|
|||
|
npm run dev
|
|||
|
|
|||
|
# 测试上传文件
|
|||
|
curl -X POST http://localhost:3000/upload \
|
|||
|
-H "Content-Type: application/json" \
|
|||
|
-d '{"filename": "test.txt", "content": "Hello S3!"}'
|
|||
|
```
|
|||
|
|
|||
|
### 5. 验证存储
|
|||
|
|
|||
|
- 登录服务提供商的Web控制台
|
|||
|
- 检查文件是否成功上传
|
|||
|
- 测试下载功能
|
|||
|
|
|||
|
## 测试建议
|
|||
|
|
|||
|
1. **开始小规模测试**: 先上传小文件(< 1MB)验证基本功能
|
|||
|
2. **测试大文件**: 逐步测试更大的文件(10MB, 100MB等)
|
|||
|
3. **测试分片上传**: 验证TUS分片上传功能
|
|||
|
4. **测试下载**: 确保文件可以正确下载
|
|||
|
5. **测试权限**: 验证访问控制和安全设置
|
|||
|
|
|||
|
## 故障排除
|
|||
|
|
|||
|
### 常见错误
|
|||
|
|
|||
|
1. **403 Forbidden**: 检查Access Key和Secret是否正确
|
|||
|
2. **404 Not Found**: 确认存储桶名称和endpoint正确
|
|||
|
3. **SSL错误**: 某些服务可能需要设置SSL选项
|
|||
|
|
|||
|
### 调试技巧
|
|||
|
|
|||
|
1. 启用详细日志
|
|||
|
2. 使用AWS CLI工具测试连接
|
|||
|
3. 检查网络连接和防火墙设置
|
|||
|
|
|||
|
## 推荐测试顺序
|
|||
|
|
|||
|
1. **Tebi** - 最容易开始,免费额度大
|
|||
|
2. **MinIO本地** - 完全控制,无网络依赖
|
|||
|
3. **AWS S3** - 最标准的实现,用于最终验证
|
|||
|
4. **Tigris** - 测试现代化特性
|
|||
|
|
|||
|
选择适合你需求的服务开始测试吧!
|