私より詳しいわけではありませんが、実際にやってみました。@Pravi の助けを借りて無事に完了しました。
S3 アップロードからバニラ状態に戻すために必要な手順
これは簡単ではありません。テキストやリンクには細心の注意を払ってください。失敗すると整理するのが大変なことになります。ただし、十分に実行可能です。
ステップ 1 - S3 バケットから public/uploads/default フォルダへファイルをコピーする
まず、アプリコンテナ内で AWS CLI をインストールします。
cd /var/discourse
./launcher enter app
sudo apt install awscli
S3 の ID とパスワードで AWS を設定します(通常は簡単です)。
aws configure
その後、aws を使ってバケットの内容をすべて public/uploads/default/ にコピーします。
aws s3 sync s3://my-bucket-name/ public/uploads/default/
ステップ 2 - S3 URL の再マッピング
これは、フォーラム上の画像を見つけて URL を検査するのが最も簡単です。実際のファイル名までのすべての部分(最後の / も含む)が必要です。
discourse remap //the-long-url-in-your-images-until-the-filename /uploads/default/
ステップ 3 - ポストの再構築とアプリの再ビルド
rake posts:rebake
exit
./launcher rebuild app
ステップ 4 - S3 の無効化
- 設定(または app.yml で設定している場合はそちら)で S3 アップロードをオフにします。CDN を使用していた場合は、設定からのリンクも削除してください(そうしないと実際にはオフになりません)。
- コンテナをオフにします。私はまずバックアップとしてコンテンツを新しいコンテナに移動させるという手順で行いました。
お疲れ様でした!完了です。現時点では問題には遭遇していません。ぜひ試してみてください!