From 769049bd025cf8e8c556cd22e2e0983a3d6525e1 Mon Sep 17 00:00:00 2001 From: Xiaoxia AI Date: Tue, 23 Jun 2026 19:11:30 +0800 Subject: [PATCH] fix(web): use signed URLs for generated video downloads --- apps/web/src/pages/workspace/ProjectGeneration.tsx | 13 +++++++++++-- apps/web/src/pages/workspace/ProjectResults.tsx | 11 +++-------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/apps/web/src/pages/workspace/ProjectGeneration.tsx b/apps/web/src/pages/workspace/ProjectGeneration.tsx index ed8f91b44..34e4442a1 100644 --- a/apps/web/src/pages/workspace/ProjectGeneration.tsx +++ b/apps/web/src/pages/workspace/ProjectGeneration.tsx @@ -2,7 +2,7 @@ import React, { useEffect, useMemo, useState } from 'react'; import { useLocation, useParams } from 'react-router-dom'; import { Alert, Button, Card, Form, Input, Select, Space, Typography, message } from 'antd'; import { useMutation, useQuery } from '@tanstack/react-query'; -import { createGenerationTask, getGenerationResults, getGenerationTask } from '@/api/generation'; +import { createGenerationTask, getGeneratedVideoDownloadUrl, getGenerationResults, getGenerationTask } from '@/api/generation'; import { getAssetLibraries } from '@/api/assets'; import { getProject } from '@/api/projects'; import { useAuthStore } from '@/store/authStore'; @@ -124,6 +124,15 @@ const ProjectGeneration: React.FC = () => { ? humanizeGenerationError(taskQuery.data.error_message) : ''; + const openSignedDownload = async (videoId: string) => { + try { + const url = await getGeneratedVideoDownloadUrl(videoId); + window.open(url, '_blank', 'noopener,noreferrer'); + } catch (error: any) { + message.error(error.response?.data?.detail || '获取下载地址失败'); + } + }; + return (
@@ -196,7 +205,7 @@ const ProjectGeneration: React.FC = () => { {resultsQuery.data.map((item) => ( {item.name} - diff --git a/apps/web/src/pages/workspace/ProjectResults.tsx b/apps/web/src/pages/workspace/ProjectResults.tsx index a47733360..753b127e8 100644 --- a/apps/web/src/pages/workspace/ProjectResults.tsx +++ b/apps/web/src/pages/workspace/ProjectResults.tsx @@ -62,14 +62,9 @@ const ProjectResults: React.FC = () => { } description={ - - - {item.file_url} - - - + + {item.name} + } />