#2 2025-07-18修复aigc 数据库oss异常问题

Спојено
luojunhui споји(ла) 1 комит(е) из Server/bugfix/20250718-luojunhui-fix-aigc-database-error у Server/master пре 1 дан
2 измењених фајлова са 17 додато и 1 уклоњено
  1. 16 1
      applications/service/get_cover.py
  2. 1 0
      applications/utils/get_cover.py

+ 16 - 1
applications/service/get_cover.py

@@ -15,8 +15,13 @@ class GetCoverService(Response):
     async def montage_cover(self, oss_key, pool_name):
         match pool_name:
             case "aigc_db_pool":
+                if oss_key.startswith("http"):
+                    return oss_key + self.suffix
+
                 return self.aigc_prefix + oss_key + self.suffix
             case "long_video_db_pool":
+                if oss_key.startswith("http"):
+                    return oss_key + self.suffix
                 return self.pq_prefix + oss_key + self.suffix
             case _:
                 return None
@@ -34,7 +39,17 @@ class GetCoverService(Response):
                     )
                 if fetch_response:
                     image_oss = fetch_response[0]["oss_object_key"]
-                    cover = await self.montage_cover(image_oss, "aigc_db_pool")
+                    if image_oss:
+                        cover = await self.montage_cover(image_oss, "aigc_db_pool")
+                    else:
+                        image_url = fetch_response[0]['image_url']
+                        if not image_url:
+                            return self.error_response(
+                                error_code="402",
+                                error_message="can't find cover in aigc system",
+                            )
+                        else:
+                            cover = await self.montage_cover(image_url, "aigc_db_pool")
                 else:
                     return self.error_response(
                         error_code="402",

+ 1 - 0
applications/utils/get_cover.py

@@ -27,6 +27,7 @@ async def fetch_aigc_cover(pools, channel_content_id):
     fetch_response = await pools.async_fetch(
         query=fetch_query, db_name="aigc_db_pool", cursor_type=DictCursor
     )
+
     return fetch_response