From 854ef02167dd0c5d705a11d1c9ef235254a3aa9d Mon Sep 17 00:00:00 2001 From: saas-backend-agent Date: Tue, 8 Sep 2026 19:00:07 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20AI=E6=95=B0=E5=AD=97=E4=BA=BA=E6=B8=B2?= =?UTF-8?q?=E6=9F=93=20OSS=20=E4=B8=8A=E4=BC=A0=E9=9B=86=E6=88=90=20Shared?= =?UTF-8?q?StorageService?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 替换 _upload_to_oss 占位实现为 get_shared_storage_service().upload_file_smart() - 上传失败时抛出 AiAvatarRenderError(code='OSSUploadFailed') - 支持大文件自动分片上传 + 超时保护 关联 Issue: #1798 --- apps/api/app/services/ai_avatar_render_service.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/apps/api/app/services/ai_avatar_render_service.py b/apps/api/app/services/ai_avatar_render_service.py index 9b3db232c..d13af622d 100644 --- a/apps/api/app/services/ai_avatar_render_service.py +++ b/apps/api/app/services/ai_avatar_render_service.py @@ -27,6 +27,7 @@ from packages.domain.video_filter_builder import ( build_cover_extract_command, build_title_drawtext_filter, ) +from packages.shared.storage import get_shared_storage_service logger = logging.getLogger(__name__) @@ -363,8 +364,14 @@ class AiAvatarRenderService: def _upload_to_oss(self, local_path: str, oss_key: str) -> str: """上传文件到 OSS,返回 URL. - 简化实现,实际应调用 OSS SDK。 + 使用 SharedStorageService 统一存储服务。 """ - # TODO: 集成实际 OSS 上传 - logger.info("上传文件到 OSS: %s -> %s", local_path, oss_key) - return f"https://oss.example.com/{oss_key}" + storage = get_shared_storage_service() + url = storage.upload_file_smart(local_path, oss_key) + if url is None: + raise AiAvatarRenderError( + f"上传文件到 OSS 失败: {oss_key}", + code="OSSUploadFailed", + ) + logger.info("上传文件到 OSS 成功: %s -> %s", local_path, url) + return url -- 2.54.0