使用 Rust、WebAssembly 和 MozJPEG 在 Discourse 中实现更快(更小)上传 | 博客

几周前,得益于一种在客户端上传前压缩和优化图片的技术,Discourse 中的图片上传变得更快且文件更小。本文将介绍该功能的运作原理以及我们如何在 Discourse 中实现它。


这是原始文章 https://blog.discourse.org/2021/07/faster-user-uploads-on-discourse-with-rust-webassembly-and-mozjpeg/ 的配套讨论主题。
50 个赞

太棒了!:heart_eyes: 这是一个巨大的改进。工作做得非常出色。现在在讨论中上传和分享照片变得更加有趣了。

还有一个额外的好处——网速较慢的用户现在可以一次上传多张照片,而不会再出现令人头疼的“正在上传…"代替照片的情况。:+1:

21 个赞

不错的改进……生日快乐,拉斐尔!

13 个赞

非常高兴看到 Discourse 更多地发挥 Rust 的力量!:crab: :muscle:

imageflow 是该领域中另一个令人印象深刻的 Rust 库。

我冒昧地在此分享这一消息:

https://www.reddit.com/r/rust/comments/okehky/faster_and_smaller_uploads_in_discourse_with_rust/?utm_source=share&utm_medium=web2x&context=3

17 个赞

这是我网站上目前有的内容?意思是你们仅仅因为想要打造更好的产品,就把这种程度的功能改进直接推送给所有人了?

我内心清楚事实确实如此。我见识过不少,了解你们的行事风格,但这也太让人意外了。我总觉得好像错过了某个环节,以为这应该是一个面向高级用户的优化策略。

9 个赞

是的,没错。:smiley:

8 个赞

太酷了,伙计。

Bill Murray Thank You GIF by filmeditor

9 个赞

不幸的是,我们收到了大量来自 Android 用户的投诉,问题包括光标跳动和上传性能下降。

3 个赞

我提交了一个拉取请求(PR),将大幅改善多文件上传过程中的光标/占位符处理问题。

如果以下所有条件均满足:

  • 您不关心存储成本
  • 您的大部分用户拥有良好的互联网上传速度
  • 您的大部分受众使用普通或性能较差的安卓手机

您可能需要考虑禁用该功能,或将最小尺寸阈值调高几兆字节。

10 个赞

听到这个消息太好了!

遗憾的是,我的许多用户使用的是价格较低或较旧的安卓手机,因此我短期内不会重新启用该功能。我自己的 iPhone 12 上尚未遇到任何问题。

5 个赞

Falco,是否有可能或有意愿为此提供一个用户设置,以便需要的人可以选择使用?或者提供一个“使用经典图片上传器”的选项,像 Craigslist 那样?选择该按钮可切换上传方式。

5 个赞

或许可以调整其最小尺寸阈值,使其仅在文件大于 3MB 时触发,这样旧手机拍摄的照片就不会自行达到该阈值。

该选项最初包含在 原始 RFC 中,但根据收到的评论,它已被移除。

6 个赞

你好,Rafael,

我觉得我们在新的占位符处理上有点小问题。看起来图片是内联显示的,而不是换行显示。这不仅出现在编辑器预优化时,常规上传时也是如此。谢谢 :slightly_smiling_face:

5 个赞

这应该能解决问题

9 个赞

你好,Rafael,

抱歉回复晚了,我刚刚测试了一下。:confused: 如果将图片拖到新行,多次上传时功能正常;但如果将图片拖到文本末尾,问题似乎依然存在。谢谢!:slightly_smiling_face:

4 个赞

@Don 现在一切正常了吗?

6 个赞

看来这个问题依然存在。

屏幕录制 2021-08-30 于 3.15.11|视频

4 个赞

这已经修复了吗?@Falco

4 个赞

抱歉,视频中的 bug 是什么?这看起来完全符合我的预期?

6 个赞

我错过了这个功能 A setting to always insert images as separate paragraphs - #16 by andrei Faster (and smaller) uploads in Discourse with Rust, WebAssembly and MozJPEG | Blog - #9 by Falco 不确定。 :confused:

我有一个关于此功能的社区视频,当时我向成员们展示了它。

5 个赞