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

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

1 个赞

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

6 个赞

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

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

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

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

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

1 个赞

根据这个情况,似乎是外部网站在限制来自特定 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 中,但没有任何效果。

1 个赞

@rahim123 :slight_smile:

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

4 个赞

你解决这个问题了吗?

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

3 个赞

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

3 个赞

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

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

5 个赞

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

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

BBcode 也有效:

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

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

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

1 个赞

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

1 个赞

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

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

1 个赞

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

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

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

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