Imgur 图片无法渲染,因为服务器速率限制

我通过 API 添加了一个帖子。它包含以下代码片段:

![Here is an example](https://i.imgur.com/LaUXRKW.png)

如在此处可见,它在编辑器中正确渲染:

最初保存后,它在主题中也显示正确。但是,在重新加载网站后,它会像这样渲染:
image

我已经尝试过:

  • 检查数据库中的原始内容是否正确
  • 从 Web 界面,选择“Rebuild HTML”
  • 从服务器控制台,执行 rake posts:rebake(没有错误)
  • 禁用浏览器缓存以确保我没有看到旧的渲染
  • 通过 ./launcher restart app 重启应用程序
  • 重启整个服务器

此时我不知道还能做什么。有什么进一步调试的建议吗?

这是一个使用 Docker 的全新标准安装。我使用的版本是 3.2.0.beta4-dev

澄清一下,如果您手动创建消息,它仍然会发生吗?

另外,这是一个随机的想法,但您是否尝试在上方插入一个新行以查看图像是否会显示?

在我这边,我尝试使用 API 或手动操作,但都无法重现。:thinking:.

我不熟悉那种添加图片链接的格式,但我想知道这个问题是否与 block hotlinked media(阻止盗链媒体)设置有关?

谢谢你的想法,但此设置在我的实例上未启用。

1 个赞

您的服务器已被 imgur 限制速率。您可以通过浏览器读取图片,但无法从您的服务器下载。

如果您尝试使用 curl 或 wget 从您的服务器拉取图片,您将收到错误。

3 个赞

刚测试了,手动创建消息也会发生。所以似乎与API无关(我会修改主题标题)。

没有区别,这种情况仍然存在。至于重现,我使用以下作为完整主题内容可以可靠地重现:

Test
![some alt text](https://i.imgur.com/LaUXRKW.png)

哦,我明白了。这很有道理,因为在我遇到这个问题之前,我导入了 120k 个主题。所以这肯定从 imgur 获取了很多图片。
感谢您指出这一点,我之前还以为是客户端处理所有图片请求呢!

我觉得服务器进行这些请求很有意思,我猜是为了在原始图片消失时将它们缓存到本地?我会想办法将这个过程分散开,以便在更长的时间内构建这 120k 个帖子,以防止服务器被列入黑名单或受到速率限制。我的意思是,对于这个服务器来说这不是问题,这只是集成中的一个问题。但一旦我在生产环境中进行导入,我就想避免这种情况:sweat_smile:

已作为新问题继续:How to spread out import over longer timer to prevent running into rate limits of external services

1 个赞

对。

除非你关闭了启用此行为的设置。

所以在另一台机器上进行导入,然后将备份恢复到生产环境。一个更复杂的解决方案是设法让你的服务器通过代理服务器检索内容。

1 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.