Oneboxing大图失败,没有视觉提示

正在运行 Discourse 3.1.0.beta3 (7c6a8f1c74)

我们发现 Onebox 在处理 PNG / JPG 图片时出现了一些非常奇怪的行为。

这是一张我想使用 onebox 的图片:https://dronescene.co.uk/images/uploads/fullsize/20211216142548_DJI_0205_HDR_Pano.png

它应该像这样嵌入:

但相反,图片只是在帖子中显示为一个链接。

浏览器控制台显示 404:

其他一些例子:

小 PNG:

https://dronescene.co.uk/images/uploads/fullsize/20211106095005_vlcsnap_2021_05_04_17h10m24s149.png


大 JPG:

https://dronescene.co.uk/images/uploads/fullsize/20230227161106_DJI_0087_1.jpg

大 PNG:

https://dronescene.co.uk/images/uploads/fullsize/20220103215207_IMG_5782.png

嗯,这里可以正常工作。

但在 try.discourse.org 上会失败

https://try.discourse.org/t/lorem-lorem-ipsum-dolor-sit-amet-consectetur-adipiscing-elit/1425/2

看看大的那个为什么不显示?

实际上,我认为它并没有起作用,大图还没有出现?:thinking:

我最初认为这个 bug 可能是由于文件大小引起的,我们的会员经常发布 40MB 以上的图片,但我可以使用一张 5MB 的 png 图片在 try.discourse.org 上复现此问题。

图片在撰写帖子时会出现在编辑器窗口中,但在提交帖子后却不会出现在帖子本身中。

如果我随后编辑帖子,它也会出现在编辑器窗口中:

这里有一个可以尝试的 onebox 网址图片:

https://dronescene.co.uk/images/uploads/fullsize/20230329003455_Screenshot_2023_03_29_at_00.23.31.png

为了在这里的 meta 上进行测试,它应该会出现在这里:

此 bug 在 trymeta 上都存在。

当我提交该帖子时,图片确实短暂出现过,但几秒钟后又消失了。我应该录屏的。它是在烘焙过程中丢失/损坏了吗? :thinking:

我进一步研究了这个 bug。

如果我查看一个图片未能被 onebox / 下载本地副本的帖子,当我编辑帖子时,我会在浏览器控制台中看到这个 404 Not Found 错误:

它试图获取的 URL 是:

https://greyarro.ws/onebox?url=https%3A%2F%2Fdronescene.co.uk%2Fimages%2Fuploads%2Ffullsize%2F20230411071449_8719D92D_726A_46BF_9437_A06DD0507D77.jpeg\u0026refresh=true\u0026category_id=17\u0026topic_id=61425

不确定为什么会抛出 404,明明图片是存在的 :thinking:

https://dronescene.co.uk/images/uploads/fullsize/20230411071449_8719D92D_726A_46BF_9437_A06DD0507D77.jpeg

这在过去五年里一直运行正常,只是在最近三四周才出现问题。

1 个赞

我今天又试了一遍,但恐怕还是没弄明白是怎么回事。

当我尝试添加 https://dronescene.co.uk/images/uploads/fullsize/20211216142548_DJI_0205_HDR_Pano.png 时,它会显示在预览中,然后在帖子中显示一秒钟,之后就变为空白了。:person_shrugging:

我没有看到任何 404 错误。我曾以为是大小问题,因为它在预览中像 90 年代那样逐行加载 :slight_smile: 但你说你尝试了一个较小的文件,结果也一样。是哪个文件?我也试试那个。:+1:

1 个赞

感谢 @JammyDodger

这里有一个同样有问题的小型 5MB 图片:https://dronescene.co.uk/images/uploads/fullsize/20230329003455_Screenshot_2023_03_29_at_00.23.31.png

它应该出现在这里:

正如你所说,它出现了一秒钟,然后又消失了。

然而,如果我编辑帖子,它在编辑器中是可见的 :thinking: :exploding_head:

我相信它是被移除了,因为文件太大了。默认情况下,max image size kb 是 4096kb,而这个特定的文件大于 5000kb。

据我理解,如果你上传一张图片,它会在发送前自动调整大小/压缩。你可以上传大照片,因为有 客户端浏览器优化

通过 download remote images to local 设置,Discourse 会尝试按原样下载图片,如果图片太大,它将被从帖子内容中移除。

3 个赞

您好 @Arkshine

这个默认值在过去几个月里有改变吗?

我们有超过 1000 张 30-40mb 或更大的图片,多年来一直正常地远程抓取,没有出现任何问题 :thinking:

抱歉 @Arkshine 我今天早上又看了一遍,因为我可能误解了你之前的信息。

我们多年前就更改了设置,允许上传高达 100MB 的图片。

我一直在追踪这个问题到底是什么时候出现的,我只能缩小到大约在 2023 年 3 月 3 日之后。

这是一张 35MB 的图片,在 2023 年 3 月 3 日时是可以正常上传的:

https://dronescene.co.uk/images/uploads/fullsize/20230303120013_DJI_0013.jpg

以及一张来自 3 月份同一天的 27.3MB 的示例:
https://dronescene.co.uk/images/uploads/fullsize/20230303120713_DJI_0055.jpg

以及一张 2 月 27 日的 11MB 示例:

我可能会花些时间浏览过去六周左右的提交记录,看看是否有任何提交信息能引起我的注意 :slight_smile:

1 个赞

您论坛上此特定帖子(以及下面的帖子)的原始内容显示它是一张已上传的图片,而不是外部链接。由于 https://meta.discourse.org/t/client-side-image-optimization-enabled-by-default/197617,您将能够上传大图片。

您最初的问题是关于插入外部图片链接。
话虽如此,我不确定 Discourse 在粘贴图片链接时不检查图片大小的行为是否符合预期。:thinking:

您能否分享一下 app.ymlupload_size 的值?

嘿 Richie!

我不知道 Discourse 是否能够下载非常大的远程图片。

不过,我记得以前当你热链接一张大图时,会显示“图片太大,无法在论坛中显示”之类的消息,并附有指向外部图片的链接。

现在似乎不再是这样了。

粘贴外部大图链接(https://upload.wikimedia.org/wikipedia/commons/0/0b/New_cyclic_large.gif - 11 MB GIF),我可以重现你的问题:

这看起来非常像一个 bug,而且可能是一个回归。

1 个赞

我认为你可能误解了问题,或者你看到的正是 bug 的原因 :thinking:
我没有将该图片上传到 Discourse,我只是粘贴了一个链接,就像 @Canapin 下面的屏幕录像一样 :blush:

@Canapin 伙计,它已经处理大图片很多年了,很多年了,只是在过去六到八周才停止工作。

感谢测试 :+1:
我可以在我们的论坛、try.discourse.orgmeta.discourse.org 上重现它。

我已为此问题设置了赏金:

再次感谢所有到目前为止关注此问题的人 :bowing_man:

我也能重现这个问题。我还检查了我所有的图片相关设置,以确保没有任何设置导致了这种效果。我注意到当我第一次发布带有大图片链接的帖子时,图片会闪烁一分钟,好像要从照片顶部加载一样,然后就消失了(尽管图片在帖子预览窗口中非常可见)。

2 个赞

谢谢 @Lilly,这正是我们也遇到的问题。

1 个赞

我在私信中测试了一下,图片如预期般显示正常,并且链接到了原图。所以问题似乎仅限于主题帖的视图中。

@Richie 照片很酷 :slightly_smiling_face:

2 个赞

FWIW 我刚测试了一下,但我的也消失在下午了。

2 个赞

奇怪

这是我的 PM 视图:

在桌面和移动视图中都遇到了同样的问题。