此功能为 UndyDraw 应用添加了对中转站 CDN 图片的支持。当使用某些中转站时,响应中的图片会以 Markdown 格式嵌入文本中(如 ),此功能会自动检测并下载这些图片,转换为标准的 Base64 格式。
- 自动识别文本中的 Markdown 格式图片链接
- 支持常见的图片 CDN 域名
- 智能判断图片 URL 有效性
- 并发下载多个图片(默认并发数:3)
- 10秒超时保护
- 支持常见图片格式(jpg, png, gif, webp, svg)
- 将 CDN 图片转换为 Base64 格式
- 保持原始 MIME 类型
- 与现有 inlineData 格式完全兼容
- 流式响应中实时处理
- 文本缓冲机制,避免不完整的 URL
- 错误时回退到原始文本
- 下载失败时保留原始 Markdown 文本
- 网络超时处理
- 详细的错误日志记录
interface AppSettings {
// ... 其他设置
enableCdnImageProcessing: boolean; // 是否启用 CDN 图片处理
}enableCdnImageProcessing: true- 默认启用
在设置面板中切换"CDN 图片处理"开关。
支持以下格式的 Markdown 图片链接:

googlecdn.datas.systemscdn.google.comstorage.googleapis.comlh3.googleusercontent.com- 以及任何包含
image关键词的 URL
从文本中解析 Markdown 图片链接。
验证 URL 是否为有效的图片 URL。
下载图片并转换为 Base64 格式。
批量并发下载多个图片。
检查文本是否包含 CDN 图片。
在 streamGeminiResponse 中:
- 缓冲文本直到检测到完整的图片 URL
- 异步下载并转换图片
- 实时更新显示内容
在 generateContent 中:
- 批量处理所有包含 CDN 图片的文本
- 一次性转换所有图片
- 保留原始 Markdown 文本
- 记录错误日志
- 继续处理其他图片
- 10秒超时保护
- 自动回退到原始文本
- 不影响其他内容的处理
- URL 验证失败时跳过
- 保持文本完整性
- 提供详细错误信息
- 及时释放 Blob URL
- 控制并发下载数量
- 优化 Base64 转换
- 并发下载提高效率
- 超时控制防止阻塞
- User-Agent 设置避免被拒绝
- 实时显示处理进度
- 错误时优雅降级
- 不中断现有功能
- 标准中转站响应格式
- 多图片混合文本
- 无效 URL 处理
- 网络超时场景
- 禁用功能时的行为
- 使用支持 CDN 的中转站
- 上传图片并观察处理过程
- 检查图片是否正确下载和显示
- 验证错误处理机制
在 isValidImageUrl 函数中添加新的域名:
const knownImageDomains = [
'googlecdn.datas.systems',
// 添加新域名
];修改 batchDownloadImages 调用的并发参数:
batchDownloadImages(urls, 5) // 增加到 5调整下载超时时间:
downloadImageAsBase64(url, 15000) // 15秒超时- ✅ 完全向后兼容
- ✅ 标准 Gemini API 响应不受影响
- ✅ 可随时启用/禁用
- ✅ 错误时自动降级
此功能确保了应用在各种中转站环境下的兼容性,同时保持了原有的功能和性能。