Raw_email の post フィールドは画像を Base64 文字列として保存します

こんにちは。

CDN(Stackpath)の変更を検討しており、DiscourseがCDNのURLをリンクに動的に設定することは承知していますが、念のためフォーラムの投稿で「stackpath」という文字列を検索して、何件ヒットするか確認しました。

300〜400件の投稿がヒットしました。

データをダウンロードしたところ、ほぼ100MBのファイルで驚きました!

どうやら、メールで送信された画像が raw_email フィールドにbase64文字列として存在するためだと思われます。

ですので… 私が見る限り、実際には問題ではないようですが、この点についていくつか明確にしたいことがあります。

なぜ画像は raw_email フィールドにこのように保存されるのでしょうか?他に良い方法はないのでしょうか?
パフォーマンスに影響を与える可能性はありますか?メールで返信が多く、画像も含まれるフォーラムではどうでしょうか?あまり情報がないのにスペースを取りすぎていると考えられますか?

説明や追加情報があれば歓迎します。:slight_smile:

「いいね!」 1

少し単純化して聞こえるかもしれませんが、それがメールで画像を送信する方法です。そして、raw_emailを保存しているので…それを保存しているのです。

100MBの受信トレイのようなものだと考えてください。ほとんどのサイトにとっては、ほんのわずかな量です。

ストレージサイズは次のように確認できます。

select sum(pg_column_size(raw_email)) / 1048576 as raw_email_MB from posts;

その場合、raw_emailを保存しなくなります…ある程度の期間が経過したraw_emailから大きなbase64コンテンツを削除するという議論はできると思います…

可能性は低いでしょう。ディスク上に存在しますが、それを参照しない限り、参照されることはありません。

:thinking:

「いいね!」 5

詳細な回答をありがとうございます :slight_smile:

「いいね!」 1

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