feat(phase7): prefer presigned generated video downloads

This commit is contained in:
Xiaoxia AI
2026-06-18 20:49:31 +08:00
parent 3d6b90c022
commit 642d01eee4
5 changed files with 60 additions and 8 deletions
+5 -2
View File
@@ -1,5 +1,6 @@
from fastapi import APIRouter, Depends, HTTPException
from app.core.storage import MinIOService, get_minio_service
from app.dependencies import get_generated_video_repository
from app.schemas.generated_video import (
GeneratedVideoDownloadUrlResponse,
@@ -73,9 +74,11 @@ def get_generated_video(
def get_generated_video_download_url(
video_id: str,
generated_video_repository: SQLAlchemyGeneratedVideoRepository = Depends(get_generated_video_repository),
storage_service: MinIOService = Depends(get_minio_service),
) -> GeneratedVideoDownloadUrlResponse:
use_case = GetGeneratedVideoDownloadUrlUseCase(generated_video_repository)
download_url = use_case.execute(video_id)
if download_url is None:
file_url = use_case.execute(video_id)
if file_url is None:
raise HTTPException(status_code=404, detail=f"GeneratedVideo {video_id} not found")
download_url = storage_service.get_download_url(file_url)
return GeneratedVideoDownloadUrlResponse(video_id=video_id, download_url=download_url)