こんにちは、皆さん
Discourse で大きな画像を保存するための解決策はありますか?私が言いたいのは、ユーザーが画像をアップロードする際に画像を最適化するオプションがあるかどうか、あるいはそれよりも好ましくない選択肢ですが、数ヶ月ごとに SSD 上の画像を小さくしたバージョンに置き換える方法があるかどうかです。
長期的に見て、すべての大きな画像を SSD に残し続けるのは賢明ではないと思います。
現時点では(フォーラムを立ち上げたばかりなので)、毎月 1GB ずつ追加の容量が必要になっています。
ありがとうございます。
最適な解決策は、アップロードをサーバーに保存しないことです。
S3 や同様のサービスを利用することを検討されましたか?S3 の前面に CDN を配置することで、転送コストを最小限に抑えることができます。これはローカル SSD よりもはるかに安価です。
なるほど、ステファンさん、ご回答ありがとうございます。現在はAmazon Lightsailを利用しており、5ドルのパッケージで40GBのSSDが付いてくるので、かなり安価です。おそらく最初の1年はこれで十分でしょう。ただ、将来的な解決策も探したいと考えています。現在の技術を使えば(私のウェブサイトでは手動で行っていますが)、3MBの画像を約60KBに最適化できます(解像度も変更します)。これをDiscourseでも行えば、40GBは永遠に持つはずですが、自動的に行うのはもちろん、手動でも簡単ではないのでしょうね:laughing:
はい、最大画像サイズや変換品質を制御するいくつかのサイト設定がありますので、検索してみてください。
また、これらのサイト設定が変更される前にアップロードされた「大きすぎる」画像をリサイズする Rake タスクも用意されていますが、それが公開されているかどうかは @cvx さんにお任せします。
こんにちは、
Cloud ストレージ(S3)と CDN を設定して画像を提供する以外に、画像を S3 に保存する前、または保存後にリアルタイムで変換(プログレッシブ JPEG への圧縮)した経験がある方はいますか?
画像の多い Discourse インスタンスの場合、http://webpagetest.org/ が「プログレッシブ JPEG を使用していない」と繰り返し警告します。ユーザーが投稿に画像をアップロードする場合、公開前後に手動で変換・圧縮するのは困難です。
AWS S3 バケットでの画像最小化に関するいくつかのアプローチを、サーバーレス Lambda 関数を使用して見つけました。
有料オプション:
DIY オプション:
https://developer.happyr.com/aws-lambda-image-optimization-with-serverless
https://github.com/sourcey/s3-image-optimizer
皆さんの経験についてお聞かせいただければ幸いです。
ありがとうございます。