S3からアバターをローカルにダウンロードする(サイトでS3をシャットダウンします)

こんにちは!数日間、Meta やインターネットで必要な情報を検索しましたが、見つけることができませんでした。

要約

コスト削減のため S3 を停止しようとしています。S3 を停止する前にユーザーのアバターを失わないよう、ローカルにアバターを保存したいと考えています。

背景(長話を短く)

  • 約 5 年前に設立されたコミュニティです。当初は画像をローカルに保存していましたが、その後 S3 に保存するように切り替えました。
  • 現在、Discourse アプリは forum.example.com で動作していますが、example.com へ移行中です。
  • この移行プロセスにおいて、コスト(このコミュニティは非常に大規模です)を削減しています。主なコスト要因は S3 です。投稿への画像リンクが失われることは問題ありませんが、ユーザーのアバターは維持したいと考えています。
  • フォーラムを example.com に移行した後、S3 の認証情報を削除して試してみました。その結果、一部の利用者はアバターが表示されるものの、他の利用者は表示されないことがわかりました。

そこで、現在以下の目標を達成するために奮闘しています:

  1. S3 接続を切断した後もユーザーのアバターを維持する
  2. フォーラムへの画像アップロードを無効化しつつ、アバターのアップロードのみを許可する

ご意見、アイデア、またはご支援をいただければ幸いです。:heart:

S3 からローカルへのアップロード移行に関するrakeタスクがあります。詳しくは Migrating uploads from s3 to local を検索してください。

もしかして、CDN を使わずに S3 をご利用でしょうか?適切に設定してすべてのトラフィックを CDN でフロントエンド化していれば、S3 が主要なコストになることは、極めて例外的なコミュニティでない限りありえません。

なるほど、ご指摘ありがとうございます。いいえ、私は CDN を利用していません。AWS 以外で、コミュニティで一般的に利用されている CDN はありますか?できるだけ早く調べてみます。

共有ありがとうございます!ただ、アバターにのみ範囲を限定する方法がわかりません。S3 からすべての画像をダウンロードすると、住宅ローンを組む必要があるほど費用がかさむでしょうしね :stuck_out_tongue: