fenghuo/packages/storage/docs/TESTING_S3_SERVICES.md

3.8 KiB
Raw Blame History

S3存储测试服务推荐

免费云端S3服务

1. Tebi (强烈推荐)

  • 免费额度: 25GB存储 + 250GB传输量永久免费
  • 网站: https://tebi.io
  • 特点:
    • S3兼容API
    • 地理分布式存储
    • 支持FTP/FTPS
    • 无需信用卡注册
    • 提供个人助手支持

配置示例:

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工作负载优化

配置示例:

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个PUT12个月
  • 网站: https://aws.amazon.com/s3/
  • 注意: 需要信用卡验证

配置示例:

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快速启动:

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"

配置示例:

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启动:

docker run -p 9090:9090 -p 9191:9191 -t adobe/s3mock

3. LocalStack (完整AWS模拟)

模拟完整AWS服务栈

Docker启动:

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. 配置环境变量

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. 测试上传

# 启动你的应用
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 - 测试现代化特性

选择适合你需求的服务开始测试吧!