DiscourseでのアップロードがRust、WebAssembly、MozJPEGでより高速(かつ小型)に | ブログ

数週間前から、Discourse での画像アップロードが、クライアント側でアップロードに画像を圧縮・最適化する技術のおかげで、より高速かつファイルサイズが小さくなりました。このブログ記事では、この機能の仕組みと、Discourse での実装方法について説明します。


これは、以下の元記事の補足ディスカッショントピックです:https://blog.discourse.org/2021/07/faster-user-uploads-on-discourse-with-rust-webassembly-and-mozjpeg/
「いいね!」 50

素晴らしいです!:heart_eyes: これは驚くべき改善ですね。本当に素晴らしい仕事です。ディスカッションで写真をアップロードして共有するのが、今ではずっと楽しくなりました。

さらに嬉しい副次的な効果として、低速な回線を利用している人でも、写真の代わりに「アップロード中…」と表示されるという厄介な問題に直面することなく、一度に複数の写真をアップロードできるようになります。:+1:

「いいね!」 21

素晴らしい進歩ですね…そして、ラファエルさん、お誕生日おめでとうございます!

「いいね!」 13

Rust の力をより活用している Discourse を見て、とても興奮しています!:crab: :muscle:

この分野でもう一つ印象的な Rust ライブラリとして、imageflow があります。

こちらでニュースを共有させていただきました:

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 を提出しています。

以下の条件がすべて当てはまる場合:

  • ストレージコストを気にしない
  • ユーザーの大部分が良好なアップロード回線を持っている
  • 視聴者の大部分が平均以下性能の Android スマホで閲覧している

この機能を無効にするか、最小サイズのスレッショルドを数 MB 上げる調整を行うことを検討してください。

「いいね!」 10

それは素晴らしいですね!

残念ながら、私のユーザーの多くは安価または古い Android スマートフォンを使用しているため、近いうちにこの機能を再有効化することはできません。私は iPhone 12 で問題なく使用できています。

「いいね!」 5

Falcoさん、これに対してユーザー設定を提供することは可能でしょうか、あるいは関心はありますか?そうすれば、希望するユーザーがそれを選択して使用できるようになります。あるいは、Craigslistが行っているように「クラシックな画像アップローダーを使用する」というオプションを設けることはどうでしょうか?そのボタンを選択すると、アップロード方法が切り替わります。

「いいね!」 5

最小サイズを調整して、3MB 以上のファイルでのみ発動するようにすれば、古いスマートフォンでは自撮りカメラの画像でその閾値に達しないかもしれません。

それは元の RFC に含まれていましたが、寄せられたコメントに基づいて除外されました。

「いいね!」 6

こんにちは、ラファエルさん。

新しいプレースホルダーの処理について少し問題があるようです。画像が改行されずにインラインで表示されてしまうようです。コンポーザーの最適化前だけでなく、通常のアップロード時にも同様の現象が起きています。よろしくお願いいたします :slightly_smiling_face:

「いいね!」 5

これで修正されるはずです

「いいね!」 9

こんにちは、ラファエルさん。

遅くなってすみません。今すぐテストしました。:confused: 画像を新しい行にドラッグして複数回アップロードする場合は問題なく動作しますが、テキストの末尾に画像をドラッグした場合はまだ問題が残っているようです。ありがとうございます :slightly_smiling_face:

「いいね!」 4

もう大丈夫ですか、@Don

「いいね!」 6

これはまだ発生しているようです。

「いいね!」 4

これは修正されましたか? @Falco

「いいね!」 4

申し訳ありませんが、その動画のバグは何ですか?それは私が期待する通りの動作に見えますが?

「いいね!」 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