jimeng-free-api/TOS_UPLOAD_INTEGRATION.md
2025-08-27 19:32:57 +08:00

3.6 KiB
Raw Blame History

TOS上传集成说明

功能概述

现在图片和视频生成完成后会自动将原始URL的文件上传到TOS对象存储并返回TOS地址。

修改内容

1. 图片功能改进

文件路径: src/api/routes/images.ts

  • 增加了 uploadImagesToTOS() 函数
  • 修改了 /query 接口当任务完成时自动处理TOS上传
  • 增加了缓存机制,避免重复上传

2. 视频功能改进

文件路径: src/api/routes/video.ts

  • 增加了 uploadVideosToTOS() 函数
  • 修改了 /query 接口当任务完成时自动处理TOS上传
  • 增加了缓存机制,避免重复上传

3. 任务缓存改进

文件路径:

  • src/api/ImagesTaskCache.ts
  • src/api/VideoTaskCache.ts

增加了TOS处理状态跟踪

  • isTosProcessed(taskId): 检查任务是否已处理TOS上传
  • markTosProcessed(taskId): 标记任务为已处理TOS上传

4. TOS服务配置

文件路径: src/lib/tos/tos-service.ts

  • 支持通过环境变量配置TOS参数
  • 增强了错误处理和日志记录

使用流程

图片生成流程

  1. 发起生成请求

    POST /v1/images/generations
    {
      "task_id": "task_123",
      "prompt": "一只可爱的猫",
      "width": 1024,
      "height": 1024
    }
    
  2. 查询任务状态

    GET /v1/images/query?task_id=task_123
    
  3. 第一次查询(任务完成时)

    • 自动上传图片到TOS
    • 返回TOS地址
    {
      "created": 1703123456,
      "data": {
        "task_id": "task_123",
        "url": "https://your-domain.com/images/image-1703123456-abc123.png",
        "status": -1
      }
    }
    
  4. 后续查询

    • 直接返回缓存的TOS地址
    • 不会重复上传

视频生成流程

  1. 发起生成请求

    POST /v1/video/generations
    {
      "task_id": "video_123",
      "prompt": "一只猫在草地上奔跑",
      "duration": 5,
      "ratio": "16:9"
    }
    
  2. 查询任务状态

    GET /v1/video/query?task_id=video_123
    
  3. 处理流程同图片

    • 自动上传视频到TOS
    • 返回TOS地址

环境变量配置

需要在环境变量中配置以下TOS参数

# TOS对象存储配置
TOS_ACCESS_KEY_ID=your_access_key_id
TOS_ACCESS_KEY_SECRET=your_access_key_secret
TOS_BUCKET_NAME=your_bucket_name
TOS_SELF_DOMAIN=your_custom_domain.com
TOS_REGION=cn-beijing
TOS_ENDPOINT=tos-cn-beijing.volces.com

文件存储路径

  • 图片: jimeng_free/images/{taskId}/image-{timestamp}-{random}.png
  • 视频: jimeng_free/videos/{taskId}/video-{timestamp}-{random}.mp4

错误处理

  • 如果TOS上传失败会返回原始URL
  • 错误信息会记录到日志中
  • 不会影响原有功能的正常使用

日志记录

相关日志会记录在:

  • logs/images_task_cache.log - 图片任务缓存日志
  • logs/video_task_cache.log - 视频任务缓存日志
  • 应用主日志 - TOS上传成功/失败日志

性能优化

  1. 缓存机制: 避免重复上传相同文件
  2. 异步处理: TOS上传不阻塞API响应
  3. 错误兜底: 上传失败时返回原始URL
  4. 日志记录: 便于监控和调试

注意事项

  1. 确保TOS服务配置正确
  2. 确保网络可以访问TOS服务
  3. 监控TOS存储容量和费用
  4. 定期清理过期文件(可选)

测试验证

可以通过以下方式验证功能:

  1. 生成一张图片检查返回的URL是否为TOS地址
  2. 多次查询同一个task_id确认不会重复上传
  3. 检查TOS存储中是否有对应的文件
  4. 测试TOS上传失败的情况下是否正常兜底