S3バケットの変更とすべての参照

ウェブサイトの S3 バケットを変更し、すべてのアセットを新しいバケットにコピーしました。すべて同じ状態に保ち、少なくともすべてのファイルが公開読み取り可能であることを確認しました。

 for i in $(cat files.txt | awk '{print $4}'); do  aws --profile gb_root  s3api put-object-acl --bucket gb-www-forum  --key $i --acl public-read ; done;

一部の URL や参照されている画像は、まだ古いバケット名に基づいています。

例えば、ロゴの URL は以下のように設定されています:

https://geek-beacon-www-forum.s3.dualstack.us-west-1.amazonaws.com/original/2X/8/8d0ac51fff56cdc704af2807c1c2efee13a3fd89.png

これは古いバケットであり、すべて新しいバケット名を参照すべきでした。

試したこと:

リベイク

cd /var/discourse
./launcher enter app
rake posts:rebake

これは正常に実行されましたが、何も変更されませんでした。

リマップ(実行失敗)

リマップについて言及されていましたが、どのように機能させるか分かりません。

root@forum-app:/var/www/discourse# rake --tasks  | grep remap
rake posts:remap[find,replace,type,ignore_case]                        # Remap all posts matching specific string
root@forum-app:/var/www/discourse# rake posts:remap["geek-beacon-www-forum", "gb-www-forum", "string",  false]
rake aborted!
Don't know how to build task 'posts:remap[geek-beacon-www-forum,' (See the list of available tasks with `rake --tasks`)
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
(See full trace by running task with --trace)
「いいね!」 1

誰も回答がないため、結局いくつかの SQL クエリを実行してこの問題を修正しようとしました。

sudo ./launcher enter app
sudo -u postgres psql discourse

これが完全なリストではない可能性がありますが、以下のテーブルを更新しました。

  • uploads
  • badges
  • optimized_images
  • post_custom_fields
  • post_revisions
  • posts
  • stylesheet_cache

フォーラムの状態は大幅に改善されましたが、まだ奇妙な挙動が発生しています。写真が含まれていた投稿にアクセスすると、画像がまだ壊れているように表示されますが、その投稿を編集しようとすると画像とプレビューが表示され、すべて正常に動作します。

投稿を保存しても、画像は壊れたままです。画像をダウンロードして再提出しても、依然として壊れたままです。

新しい投稿を作成すると、すべて正常に動作します。

見落としていることがあるでしょうか?

「いいね!」 1