-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Description
例行检查
- 我已确认目前没有类似 issue
- 我已确认我已升级到最新版本
- 我已完整查看过项目 README,尤其是常见问题部分
- 我理解并愿意跟进此 issue,协助测试和提供反馈
- 我理解并认可上述内容,并理解项目维护者精力有限,不遵循规则的 issue 可能会被无视或直接关闭
问题描述
在使用 NewAPI(特别是开启 GET_MEDIA_TOKEN=true 或使用 Gemini 模型时)转发包含特定图片链接的请求时,后端会因为下载图片失败而直接抛出 500 错误,导致服务不可用。
目前发现了三种导致崩溃的场景:
403 Forbidden: 访问 Wikipedia 等有防盗链的图片时,因缺失 User-Agent 被拒绝。
MIME Type Error: 访问 TikTok 等图片 API 时,因缺失 User-Agent 被重定向到验证页面 (text/html),导致 Gemini 格式化逻辑报错。
x509 Certificate Error: 访问证书域名不匹配的网站 (如 gdfreak.com) 时,因 HTTP Client 默认开启 TLS 校验而连接失败。
复现步骤
Wikipedia 图片 (触发 403): https://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Kanashibeturomanza_001.JPG/1200px-Kanashibeturomanza_001.JPG
证书不匹配图片 (触发 x509): https://gdfreak.com/chartimage/jp0100500000010/jp010050000001001227_1.png
预期结果
能不能至少给一个开关可以不管他不下载啊,或者加点反反爬机制
AI检查:
经排查代码 service/download.go 中的 DoDownloadRequest 函数:
直接使用了默认的 GetHttpClient().Get(),未设置 User-Agent,导致被反爬拦截。
默认 Client 未配置 InsecureSkipVerify: true,导致无法容忍 SSL 证书错误。
修复建议 (Fix Suggestion):
建议修改 service/download.go,手动构造带 Header 的请求并忽略证书错误
相关截图