こんにちは。Discourse を EC2 から ECS(コンテナサービス)へ移行しました。EC2 時代は S3 アップロードの設定がまだ行われていませんでした。移行前に、EC2 上のすべての画像を(パブリックアクセス付きで)S3 バケットにコピーしました。しかし、S3 アップロードを有効にして(CDN は未設定のまま)移行を行ったところ、画像やアバターが一切表示されなくなりました。
app.yml の設定は以下の通りです:
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: us-east-1
DISCOURSE_S3_ACCESS_KEY_ID: aws_access_key
DISCOURSE_S3_SECRET_ACCESS_KEY: aws_secret_key
DISCOURSE_S3_BUCKET: <uploads-bucket>
DISCOURSE_S3_BACKUP_BUCKET: <backups-bucket>
DISCOURSE_BACKUP_LOCATION: s3
hooks:
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
コンテナ内で以下のコマンドを実行しても改善しませんでした:
rake posts:rebake
rake posts:missing_uploads
rake avatars:refresh
また、画像の URL に違いがあることも確認しました(Discourse はまだ「EC2 上のローカルアップロード」の URL を使用しています)。
S3 上のリンク:https://[s3-bucket].s3.amazonaws.com/original/1X/831092e27d6c066c3618a587a5c378e1c794f2c6.png
Discourse 上のリンク(EC2 アップロードの URL のまま):https://[domain]/uploads/default/original/1X/831092e27d6c066c3618a587a5c378e1c794f2c6.png
ブラウザのエラー:404 NOT FOUND
Discourse を設定して、画像に正しい S3 URL を使用させるにはどうすればよいでしょうか?
