数ヶ月前に、あるフォーラムのアップロードを S3 へ移行しました。全体としては成功したように見えました。
- 新しい投稿からのアップロードは S3 へ完璧に保存されています
rake uploads:migrate_to_s3 を使用して、既存の投稿からの古いアップロードを S3 へ移行する処理も正常に動作しました
- 既存のアバターは移行されませんでした
- 新しいアバターのアップロードは S3 へ保存されません
- 新しいユーザーの背景画像やカード背景画像は、S3 へ完璧にアップロードされています
この問題を解決しようと、このスレッド Problems with avatar uploads due to S3 changes - #21 by Daniel_Lopes に従って rake avatars:refresh と avatars:clean を実行してみました。また、rake uploads:migrate_to_s3 を再度実行しましたが、問題は解決しませんでした。
何か見落としていることがあるでしょうか?
別の気づき:新しいアバターをアップロードすると、画像は正常に S3 にアップロードされることに気づきました。保存前に要素を検証すると、URL が S3(CDN を経由)であることが確認でき、問題なく動作します。しかし、保存後はアバターへのすべての参照がローカル画像のものに変わってしまいます(これも動作します)。
何かアイデアはありますか @vinothkannans?
@markersocial アバター画像のアップロードは、現在も S3 ストレージからのみ提供されています。UI に表示されるローカル URL は動的なプロキシ URL であり、以前はアバターを多くのカスタムサイズで提供していました。
@vinothkannans さん、ありがとうございます!とても参考になりました。
ただ一点気づいたのですが、meta.discourse.org のスレッドでアバターを検査すると CDN の URL が表示されます。一方、S3 用の CDN が設定されている別のフォーラムで同じ操作をすると、ローカルの URL が表示されます。これが問題になるかどうかはわかりません。
ローカル URL とアセットには、別途 CDN を用意しているためです。