編集:あなたのエラーは私のものとは異なるようですね。一部の画像が S3 へ移動されなかったのかもしれません。すみません、読み違えていました。もしかしたら、以下の情報の一部はまだ役立つかもしれません。このガイドから S3 アップロードを設定しましたか?Configure an S3 compatible object storage provider for uploads
@evenif - 問題が発生しているとのこと、お気の毒です。この問題に直面している人のためにガイドを書く予定でしたが、必要な情報がスレッドをまたいで散らばっていたため、情報をまとめるのに時間がかかりました。ただし、アバターの修正を待ってからにしようと思っています。上記の通り、私もまだアバターの問題に直面しています。
Rails で以下を実行した場合、true または false のどちらが返されますか?
SiteSetting.migrate_to_new_scheme
false の場合は、以下のように true に設定してみてください。
SiteSetting.migrate_to_new_scheme = true
その後、少し待ってから再度確認してください(15 分ごとに実行されるはずです)。ただし、すぐに実行したい場合は:
Jobs::MigrateUploadScheme.new.execute(nil)
その後、再度 SiteSetting.migrate_to_new_scheme が false になっているか確認してください(完了したことを意味します)。
次に以下を実行します:
Upload.by_users.where("url NOT LIKE '//%' AND url NOT LIKE '/uploads/default/original/_X/%'").to_a
これにより、問題があり移行できていないアップロードが見つかります。私の場合、これらすべてのアップロードは DB にレコードとして存在していましたが、実際の画像は存在していませんでした。
リストのサイズに応じて、ページをコピーして「検索と置換」を行い、アップロード ID のリストから問題のあるレコードを削除するコマンドのリストを作成できます。
Upload.find(1).destroy
Upload.find(2).destroy
Upload.find(3).destroy
1、2、3 などをアップロード ID に置き換えてください。作成したリスト全体を Rails にコピー&ペーストして Enter キーを押してください。これで問題のあるレコードが削除されます。
その後、Rails を終了します(exit と入力)。その後、以下のコマンドを実行するだけで済みます。
rake posts:rebake
または
rake posts:rebake_uncooked_posts
uncooked を使用すると、失敗した場合に再構築を再開できます。アップロードが大量にある場合以外は、通常の rebake を使うことをお勧めします。
これですべて正常に動作するはずです。ただし、最適化されたアバターが私の場合のように破損している可能性はありますが、元の画像は S3 に存在するはずです。
デフォルトのアバターが表示されているユーザーに対して Rails で以下を実行し、アバターが正常に移動したか確認できます。
User.find_by_username('username').uploaded_avatar
また、最適化されたバージョンが存在するかどうかは以下で確認できます。
OptimizedImage.where(upload_id: upload_id).where(version: 2)