古いアップロードの S3 への移行

新しいアップロードは Amazon S3 に正常にアップロードされているのですが、以下のコマンドを実行すると、ローカルに保存されている古いファイルを S3 へ移行させることができません。

DISCOURSE_S3_BUCKET="bucketname" DISCOURSE_S3_REGION="ap-south-1" DISCOURSE_S3_ACCESS_KEY_ID="AKIchangedabitUNM2" DISCOURSE_S3_SECRET_ACCESS_KEY="rX6Pf3C_changedabit_YKKtdVrnbw6B" DISCOURSE_S3_CDN_URL="https://bucketname.s3.ap-south-1.amazonaws.com" rake uploads:migrate_to_s3

15 日前まではこのコマンドは完璧に動作していました。
しかし今日、以下のエラーが表示されます。

Checking if default already migrated...
7 of 14 uploads are not migrated to S3. S3 migration failed for db 'default'.
1 posts are not remapped to new S3 upload URL. S3 migration failed for db 'default'.
Looking for missing uploads on: default

0 post uploads are missing.

No posts require rebaking
Migrating uploads to S3 for 'default'...
Some uploads were not migrated to the new scheme. Please run these commands in the rails console

SiteSetting.migrate_to_new_scheme = true
Jobs::MigrateUploadScheme.new.execute(nil)

Rails コンソールでも以下の 2 つのコマンドを実行してみましたが、効果はありませんでした。

SiteSetting.migrate_to_new_scheme = true
Jobs::MigrateUploadScheme.new.execute(nil)

補足:アップロードファイルはバケット bucketname 内のサブフォルダ bucketname/uploads に設定されています。

何かご存知ですか、@vinothkannans さん?

エラーメッセージは表示されますか?uploads:migrate_to_s3 という rake タスクのコードには、最近大きな変更は見当たりません。

私も同様の問題に直面しました。アップロードのパスが、そのテストが期待するものと一致していなかったことが原因でした(パスから ‘default’ が抜けているなど)。

私が行ったのは(大まかで、おそらく役に立たない説明ですが)、検索が「不良」と判断するアップロードをどのように特定しているかを確認し、それを修正することでした。

偶然に解決してしまいました。どのように解決したのか、自分でもまだ確信が持てません。

コマンドを何度か変更しました。主にコマンドと Discourse 設定の CDN URL フィールドにある https://bxyzbucket1.s3.dualstack.ap-south-1.amazonaws.com に ‘dualstack’ という単語を追加または削除する操作でした。
しかし、それでもうまくいかないようでした。そこで、OP で述べられた 2 つのコマンドを Rails コンソールで再度ランダムに入力してみました。
この頃、ランダムに行った 1 つのステップとして、コマンド内のバケット名に /uploads を追加しました。
そして「偶然」(ここで別の「偶然」の言葉が必要ですね :))成功しました。
なので、この解決の立役者が誰だったのかは言えません。
とにかく聞いていただき、ありがとうございます。

表示されていたエラーは、元の投稿ですでに含めていました。ただし、そのエラーメッセージが診断にあまり役立たなかったことには同意します。

さて、今日もまた、マイグレーションの問題を理解できなかったため、ローカルに1つのアップロードを作成しました。その後、以下のコマンドでそれを再び S3 に移行しようとしました:

DISCOURSE_S3_BUCKET="bxyzbucket1/uploads" DISCOURSE_S3_REGION="ap-south-1" DISCOURSE_S3_ACCESS_KEY_ID="AKIAchangedBRF" DISCOURSE_S3_SECRET_ACCESS_KEY="H0P6Oo8changed1AuLkRDCQK8" DISCOURSE_S3_CDN_URL="https://bxyzbucket1.s3.ap-south-1.amazonaws.com/uploads" rake uploads:migrate_to_s3

1 つの新しいアップロードが S3 に移行されましたが、以下のエラーが発生しました:

1 of 14 uploads are not migrated to S3. S3 migration failed for db 'default'.
1 posts are not remapped to new S3 upload URL. S3 migration failed for db 'default'.

このエラーは何を意味するのでしょうか?「ローカル → S3」へ数千枚の画像を移行する場合、何か問題を引き起こす可能性がありますか?@vinothkannans

以下のコマンドを Rails コンソールで実行し、その結果をここに貼り付けてください

Upload.by_users.where("url NOT LIKE '//%' AND url NOT LIKE '#{GlobalSetting.relative_url_root}/uploads/default/original/_X/%'")

しばらくこの作業から離れてしまい、申し訳ありません。
あなたが送ってくれた rails コマンドを実行しているのですが、出力が何も表示されません:

依然として「S3 migration failed for db ‘default’」というエラーが発生しています。
投稿のアップロード画像はバケット内でもサイト上でも正常に表示されているのですが、サイトロゴなど([管理者設定> ブランディング] 以下)が欠落しており、新しいもので更新することもできません。それらはただ空白のままです。

また、以下のコマンドもエラーなく実行しました: rake posts:rebake_uncooked_posts および rake posts:rebake

@vinothkannans 1 年経っても、何らかの理由で同じ手順を繰り返すと、依然として同じエラーが発生します。