From d2c78b75d3ba12b61f9501184ffd968a26936385 Mon Sep 17 00:00:00 2001 From: jonathang4 Date: Wed, 27 Aug 2025 19:32:57 +0800 Subject: [PATCH] 1 --- TOS_UPLOAD_INTEGRATION.md | 4 ++-- src/api/ImagesTaskCache.ts | 6 +++--- src/api/VideoTaskCache.ts | 6 +++--- src/lib/services/TaskPollingService.ts | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/TOS_UPLOAD_INTEGRATION.md b/TOS_UPLOAD_INTEGRATION.md index 11a7bb9..538f885 100644 --- a/TOS_UPLOAD_INTEGRATION.md +++ b/TOS_UPLOAD_INTEGRATION.md @@ -115,8 +115,8 @@ TOS_ENDPOINT=tos-cn-beijing.volces.com ## 文件存储路径 -- **图片**: `images/image-{timestamp}-{random}.png` -- **视频**: `videos/video-{timestamp}-{random}.mp4` +- **图片**: `jimeng_free/images/{taskId}/image-{timestamp}-{random}.png` +- **视频**: `jimeng_free/videos/{taskId}/video-{timestamp}-{random}.mp4` ## 错误处理 diff --git a/src/api/ImagesTaskCache.ts b/src/api/ImagesTaskCache.ts index 7c24976..e37d011 100644 --- a/src/api/ImagesTaskCache.ts +++ b/src/api/ImagesTaskCache.ts @@ -77,7 +77,7 @@ export class ImagesTaskCache { * @param imageUrls 图片URL数组 * @returns TOS URL数组 */ - private async uploadImagesToTOS(imageUrls: string[]): Promise { + private async uploadImagesToTOS(imageUrls: string[], task_id: string): Promise { const tosUrls: string[] = []; for (const imageUrl of imageUrls) { @@ -85,7 +85,7 @@ export class ImagesTaskCache { // 从URL获取文件名 const fileName = `image-${Date.now()}-${Math.random().toString(36).substr(2, 9)}.png`; // 上传到TOS - const tosUrl = await TOSService.uploadFromUrl(imageUrl, `jimeng_free/images/${fileName}`); + const tosUrl = await TOSService.uploadFromUrl(imageUrl, `jimeng_free/images/${task_id}/${fileName}`); tosUrls.push(tosUrl); logger.info(`图片上传到TOS成功: ${imageUrl} -> ${tosUrl}`); } catch (error) { @@ -115,7 +115,7 @@ export class ImagesTaskCache { // 任务成功完成时,自动上传到TOS cacheLog(`开始上传图片到TOS: ${taskId}`); const imageUrls = url.split(','); - const tosUrls = await this.uploadImagesToTOS(imageUrls); + const tosUrls = await this.uploadImagesToTOS(imageUrls, taskId); finalUrl = tosUrls.join(','); this.tosProcessedTasks.add(taskId); cacheLog(`Task ${taskId} TOS上传完成,存储TOS地址: ${finalUrl}`); diff --git a/src/api/VideoTaskCache.ts b/src/api/VideoTaskCache.ts index ddbea59..9e0f71d 100644 --- a/src/api/VideoTaskCache.ts +++ b/src/api/VideoTaskCache.ts @@ -77,7 +77,7 @@ export class VideoTaskCache { * @param videoUrls 视频URL数组 * @returns TOS URL数组 */ - private async uploadVideosToTOS(videoUrls: string[]): Promise { + private async uploadVideosToTOS(videoUrls: string[], task_id: string): Promise { const tosUrls: string[] = []; for (const videoUrl of videoUrls) { @@ -85,7 +85,7 @@ export class VideoTaskCache { // 从URL获取文件名 const fileName = `video-${Date.now()}-${Math.random().toString(36).substr(2, 9)}.mp4`; // 上传到TOS - const tosUrl = await TOSService.uploadFromUrl(videoUrl, `jimeng_free/videos/${fileName}`); + const tosUrl = await TOSService.uploadFromUrl(videoUrl, `jimeng_free/videos/${task_id}/${fileName}`); tosUrls.push(tosUrl); logger.info(`视频上传到TOS成功: ${videoUrl} -> ${tosUrl}`); } catch (error) { @@ -115,7 +115,7 @@ export class VideoTaskCache { // 任务成功完成时,自动上传到TOS cacheLog(`开始上传视频到TOS: ${taskId}`); const videoUrls = url.split(','); - const tosUrls = await this.uploadVideosToTOS(videoUrls); + const tosUrls = await this.uploadVideosToTOS(videoUrls, taskId); finalUrl = tosUrls.join(','); this.tosProcessedTasks.add(taskId); cacheLog(`Task ${taskId} TOS上传完成,存储TOS地址: ${finalUrl}`); diff --git a/src/lib/services/TaskPollingService.ts b/src/lib/services/TaskPollingService.ts index e0db798..64203da 100644 --- a/src/lib/services/TaskPollingService.ts +++ b/src/lib/services/TaskPollingService.ts @@ -340,7 +340,7 @@ export class TaskPollingService { taskLog(`Task ${task.task_id} generated ${originalUrls.length} files`); // 上传到TOS - const tosUrls = await this.uploadToTOS(originalUrls, task.task_type); + const tosUrls = await this.uploadToTOS(originalUrls, task.task_type, task.task_id); // 创建结果记录 const expireTime = currentTime + parseInt(process.env.RESULT_EXPIRE_TIME || '86400'); @@ -746,7 +746,7 @@ export class TaskPollingService { /** * 上传文件到TOS */ - private async uploadToTOS(urls: string[], taskType: 'image' | 'video'): Promise { + private async uploadToTOS(urls: string[], taskType: 'image' | 'video', task_id: string): Promise { const tosUrls: string[] = []; for (const url of urls) { @@ -756,7 +756,7 @@ export class TaskPollingService { : `video-${Date.now()}-${Math.random().toString(36).substr(2, 9)}.mp4`; const folder = taskType === 'image' ? 'images' : 'videos'; - const tosUrl = await TOSService.uploadFromUrl(url, `jimeng_free/${folder}/${fileName}`); + const tosUrl = await TOSService.uploadFromUrl(url, `jimeng_free/${folder}/${task_id}/${fileName}`); tosUrls.push(tosUrl); taskLog(`${taskType} uploaded to TOS: ${url} -> ${tosUrl}`);