Imgur 图片未嵌入,出现 429 错误

出现此消息,有人知道是什么吗?

429错误表示discourse服务器从该网站提取的图片数量已超过其允许的范围。

那是什么意思?我该如何解决这个问题?

这意味着您需要从 imgur 以外的地方上传图片。它拒绝允许您的服务器下载文件。

例如,您可以直接上传到 discourse,而不是使用指向 imgur 的链接。

这是服务器问题吗?因为在其他基于 Discourse 的论坛中,Imgur 通常会通过链接嵌入。

您的服务器从 imgur 下载的图片过多。请在 Google 上搜索“imgur 429”。

根据这个情况,似乎是外部网站在限制来自特定 Discourse 论坛的请求?

我的 Discourse 实例上关于 Imgur 嵌入式图片的 429 错误问题刚刚开始出现。但同样的链接在这里可以正常工作:

https://i.imgur.com/6IXPzY6.png


奇怪的是,去掉链接中的 .png 部分,嵌入式链接 确实 会显示出来:

https://i.imgur.com/6IXPzY6

Imgur

我尝试将 https://i.imgur.comhttps://imgur.com 添加到 force custom user agent hosts 中,但没有任何效果。

@rahim123 :slight_smile:

@danielabc 最近也遇到了 Imgur 的问题,所以我把你的帖子放在这里,以便集中讨论。 :+1:

你解决这个问题了吗?

不。看起来 Imgur 是根据请求的域或 IP 进行速率限制的,因此用户代理无法修复它,而且我们似乎被卡住了。这可能是 Imgur 被一家控股公司收购后不可避免的结局的开始:

@JammyDodger@danielabc 搜索者,您能否将标题中的 imugr 修正为 Imgur?另外,是否可以将其更通用化,例如:Imgur 图片嵌入失败并出现 429 错误
我怀疑会有很多类似的问题……

我希望这是 imgur 端的一个临时问题。因为真正的错误是“未知错误”,状态码为 429。imgur 的常规 429 状态错误是“请求过多”。

对我来说,这听起来不像 Imgur 的临时问题,而是他们有意决定限制在 P 时间段内发出超过 N 个请求的域/IP。当然,这些数字没有公布,他们只是让我们一无所知。但这可以解释为什么我们的 Discourse 实例上导致 429 错误的相同链接在这里的 Discourse Meta 上仍然可以正常工作,我猜是因为这里大多数用户不经常从 Imgur 热链接内容。

还应注意的是,仍然可以通过使用图像的原生 Markdown 标记来显示 Imgur 图像:

![](https://i.imgur.com/6IXPzY7.png)

BBcode 也有效:

[img]https://i.imgur.com/6IXPzY7.png[/img]

但对于非技术用户来说,这仍然是一个非常复杂的方法,因为由于 Discourse 简单地将 URL 粘贴到单独一行的正常方法,因此“添加图像”的帖子编辑器 UI 按钮在逻辑上没有必要。

因此,我想知道是否可以考虑调整 Discourse 代码,使其在 Onebox 尝试图像链接因 429 错误而失败时,在烘焙的帖子中生成必要的 <img> 标签,并使帖子预览也能反映这一点。

尝试将 imgur 添加到 disabled image download domains。这将阻止它下载图片。

不确定这是否可行,但尝试在服务器上设置代理

然后每次被速率限制时,将其移动到新的 IP 地址。

取决于 imgur 的速率限制以及该网站的用法,您可以在代理和非代理之间切换

嗨 Jay,我已经禁用了所有热链接图片的下载,因为我的论坛有很多这类图片,我不想处理所有存储空间。

在我看来,Discourse 不应该仅仅因为链接返回 429 错误就无法生成 <img> 标签。它将其视为 404 链接,而 429 错误按定义表示这是一个有效的链接。如果链接以 .jpg.png 或其他格式结尾,并且不是 404,那么它应该将其包装在 <img> 标签中,然后完成。这样它甚至可以在帖子预览中正确显示。

那么它就不应该尝试访问它们了,我想。你更改了哪些设置?