Generating missing optimized images with S3

@supermathie さん、ありがとうございます!:slight_smile:

早速試してみましたが(2 行目のみ)、うまくいかないようです。以下のようなレコードが多数返ってきました:

id: 1234,
user_id: 1234,
custom_upload_id: nil,
gravatar_upload_id: nil,
last_gravatar_download_attempt: Thu, 07 May 2015 09:40:35 UTC +00:00,
created_at: Thu, 07 May 2015 09:40:35 UTC +00:00,
updated_at: Thu, 07 May 2015 09:40:36 UTC +00:00>

custom_upload_id に ID が設定されているレコードを 1 つ見つけ、User.find_by(id: 123456) でそのユーザーのプロフィールを取得しました。

しかし、プロフィールを表示するとアバターはまだ空のままです。また、S3 には最近(過去 6 時間以内)に新しいアップロードが行われていないことも確認できました。つまり、最適化された画像が生成されていないようです。


良い知らせとしては、Rails コマンドでアバターを検索すると以下のようになります:

User.find_by_username('username').uploaded_avatar

source

レコードは正しく、確認したすべての S3 URL も機能しています。これらのレコードは、最初から S3 を使用していた別のインスタンスと一致しているようです。

次に、以下のコマンドを実行しました:
OptimizedImage.where(upload_id: upload_id).where(version: 2)

以前のインスタンスでは最適化された画像が多数表示されますが、新しいインスタンスではレコードがありません。これは正しいようです。custom_upload_id が設定されているユーザーについては、S3 上に最適化された画像が存在するようですが、それらのレコードは数日前のものです。

つまり、最適化されたアバター画像の生成をトリガーする方法を見つける必要があるようです。

新しいインスタンスは現在読み取り専用モードになっていますが、これが要因かもしれません。読み取り専用モードでも投稿の再構築は正常に動作していました。


追記:Sidekiq にアバターサムネイル作成のジョブが多数あることに気づきました :slight_smile:

もしかすると、読み取り専用モードを解除して処理を許可するだけで済むかもしれません。追記します。