# 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** - 测试现代化特性 选择适合你需求的服务开始测试吧!