wazroth
(wazroth)
1
在另一个 Discourse 论坛上,@sam 建议我在这里提交一个 Bug 报告:CNN 文章的 oneboxing(一键预览)似乎存在(至少是)间歇性故障。鉴于这是一个知名网站,这似乎相当重要。目前尚不清楚是速率限制问题、用户代理阻止、Discourse 端问题、oEmbed 数据实际存在问题,还是其他原因。
示例:
(因新用户限制,已移除其他示例。)
4 个赞
Lilly
( Lilly)
2
您好 @wazroth
欢迎来到 Meta。
感谢您的报告。
是的,我已经能在我的开发实例和托管站点上重现此问题。CNN 链接根本无法 onebox。
3 个赞
sam
(Sam Saffron)
3
感谢 @wazroth,我们已安排在未来 4 周内调试此问题。
4 个赞
tgxworld
(Alan Tan)
7
@ted 你还记得为什么我们在 SECURITY: Prevent Onebox cache overflow by limiting downloads and URL… · discourse/discourse@95a82d6 · GitHub 中将 onebox 的 max_download_kb 从 10mb 减少到 2mb 吗?
报告的 CNN 链接没有被 onebox,因为响应大小为 2.7mb,大于当前的 2mb 限制。我们可以通过提高默认大小来解决这个问题,但我想更好地了解这样做的风险。
4 个赞
sam
(Sam Saffron)
8
嗯,另外……跟进一下,我们所需的所有信息不都在最初的 2MB 里面吗?
2 个赞
Richie
(Richie Rich)
10
这个 max_download_kb 设置是硬编码的吗?我无法通过管理菜单更改它,对吗?
tgxworld
(Alan Tan)
11
这取决于 onebox 引擎。像 Amazon 这样的某些 onebox 引擎会抓取 <body> 内的某些信息,例如商品的价格。对于 opengraph 引擎,理论上我们只需要 head 中的某些标签,例如 <meta>。
最有效的方法是在流式传输响应时解析响应以获取必要的信息,但要更改我们所有的引擎来执行此操作可能会付出相当大的努力,并且是一个更复杂的解决方案。
实际上,我们用来解析 HTML 响应的 Nokogiri 能够解析不完整的 HTML 文本,因此在响应过大时无需丢弃整个响应。我认为我们可以继续将响应体限制在 2mb,如果响应大小超过该限制,我们只需尝试解析前 2mb。
1 个赞
tgxworld
(Alan Tan)
12
这已通过以下方式修复:
在本地,当我们在尝试 onebox 时,此主题中报告的“有问题”的 URL 不再显示错误。
5 个赞