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"); + } } }