S3アップロードバケットを別のプロバイダーに移動するにはどうすればよいですか?

当初は AWS にアップロード用バケットを設定していましたが、現在は Linode を利用したいと考えています。設定はうまくいき、すでに画像が Linode にアップロードされていることを確認できました。

ただし、過去の投稿を見ると、まだ AWS を指しています。これらの画像を Linode に移動し、AWS のバケットを削除するにはどうすればよいでしょうか?

よろしくお願いいたします!

まず、aws cli や s3cmd などの対応ソフトウェアを使用してバケットを同期し、その後、すべての投稿内の文字列を置換してください。

以下を実行しましたが、0 posts remapped と表示されます。

rake posts:remap["https://royaleapi-discuss-uploads.s3.dualstack.ap-northeast-1.amazonaws.com/","https://royaleapi-discuss-upload.ap-south-1.linodeobjects.com/"]

URL は正しいようです。例えば、こちらの画像 URL を確認してみてください。

https://discuss.royaleapi.com/t/idea-for-season-21-the-archers-time/320

お試しください

rake posts:remap["//royaleapi-discuss-uploads.s3.dualstack.ap-northeast-1.amazonaws.com/","//royaleapi-discuss-upload.ap-south-1.linodeobjects.com/"]

ご提案いただいた方法を試しました。また、以下のコマンドも実行しました。

rake posts:remap["royaleapi-discuss-uploads.s3.dualstack.ap-northeast-1.amazonaws.com","royaleapi-discuss-upload.ap-south-1.linodeobjects.com"]

結果は同じでした。

Remapping

0 posts remapped!

コマンドが実際に有効なヒットを検出できるか確認するために、置換を行わない投稿をすべて検索する別のコマンドは存在しますか?

アップロードオブジェクトを検査したい場合は、以下の手順を実行してください。

cd /var/discourse
./launcher enter app
rails c
Upload.order(Arel.sql('RANDOM()')).limit(10).pluck(:id, :url)

素晴らしい質問とアドバイスですね。howto として掲載すべきでしょうか?