From d1476074e5e0078146e8b62f4871fe7b74550e1a Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 29 Dec 2025 09:53:28 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=94=B9=E8=BF=9B=E8=81=8A=E5=A4=A9?= =?UTF-8?q?=E5=AF=B9=E8=AF=9D=E4=B8=AD=E5=9B=BE=E7=89=87=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=8C=E7=A1=AE=E4=BF=9D=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E5=8E=9F=E5=9B=BEURL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 增强原图URL解析逻辑,支持更多S3 URL格式 - 确保下载时始终使用原图URL而不是缩略图 - 改进兜底策略,更好地处理各种URL格式 --- components/image-preview.tsx | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/components/image-preview.tsx b/components/image-preview.tsx index aa5e714..1269148 100644 --- a/components/image-preview.tsx +++ b/components/image-preview.tsx @@ -105,8 +105,24 @@ export function ImagePreview({ } else if (src.includes("openai-thumb-")) { originalUrl = src.replace("openai-thumb-", "openai-orig-"); console.log("[ImagePreview] Inferred original URL from openai-thumb filename"); + } else if (src.includes("/thumb/") || src.includes("-thumb")) { + // 尝试从S3 URL中推断原图URL(常见格式:xxx-thumb.jpg -> xxx.jpg 或 xxx/thumb/xxx -> xxx/xxx) + originalUrl = src.replace(/-thumb\./g, ".").replace(/\/thumb\//g, "/"); + console.log("[ImagePreview] Inferred original URL from S3 path pattern"); } else { - console.log("[ImagePreview] ⚠️ Could not parse original URL, using thumbnail as fallback"); + // 如果无法推断,且src看起来已经是完整的URL(不是缩略图),直接使用src作为原图 + // 否则记录警告 + if (src.startsWith("http://") || src.startsWith("https://")) { + // 如果src已经是完整URL且不包含thumb标识,可能是原图 + if (!src.includes("thumb") && !src.includes("thumbnail")) { + originalUrl = src; + console.log("[ImagePreview] Using src as original URL (no thumb identifier found)"); + } else { + console.log("[ImagePreview] ⚠️ Could not parse original URL, using thumbnail as fallback"); + } + } else { + console.log("[ImagePreview] ⚠️ Could not parse original URL, using thumbnail as fallback"); + } } }