@RGJ その部分は全く変更していません。Upload の再作成は、@zogstrip によるバグ修正で、詳細は Cannot execute the rake uploads:migrate_from_s3 - #11 をご覧ください。
私は単に、元から存在していたコードを動作させようとしているだけで、Discourse の内部構造には詳しくありません。暗闇で手探りしている状態です。私の Ruby に関する経験は、Discourse に対して行った数回の PR に限られています。既存のコードのパターンに従うことが、必ずしも最も効率的な方法ではないことはおっしゃる通りです(上記で @pfaffman と短絡評価について行った会話を参照)。私も完全に同意します。例えば、本日早些く、OptimizedImages.url を /uploads パスに変更し、etag を nil に設定する必要があることさえ気づいていなかったことからもお分かりいただけるかと思いますが、私はまだ手探りの状態です。
少なくとも、投稿内の古いリテラル URL を修正するためには、まず投稿を反復処理する必要があります。また、投稿の再検証を行わない、エラーを静かに飲み込まない、といった他の修正もまだ必要です。ライブサイトへの影響を制限するため、レート制限も実施したいと考えています。
最初の 2 つの懸念(ポット以外の更新に関連するもの)については、こちらが私の 進行中の作業(まだライブサイトでテスト済みではありません)(コミット)です。これがお役に立てるかもしれませんが、投稿のアップロード移行が完了するまで、私のライブサイトでのテストは行いません。
以前動作していたものを調整するのが、私がやる気のある範囲の限界でした。より高速な移行をご希望であれば、大歓迎です。私の「遅いけれど少なくとも改善された」作業をパレート改善としてマージし、その後、それをより優れたものに完全に置き換えるのが合理的かもしれません。その時点で私がそれを利用できなくなっていたとしても、私は真っ先に祝杯を上げることでしょう。