S3バケット名変更後、古い投稿を再ベイクしても新しいS3 CDN URLは取得されません

おっと、良いニュースです。アップロード記録の検索方法を調べている際に、base62 文字列を SHA1 ハッシュに変換する方法を示すこの投稿を見つけました。

そこには、単に transparent.png が表示されている画像が「tombstoned(墓碑化)」されたという記述がありました。その意味は完全にはわかりませんが、画像が破損している間に夜間プロセスが実行され、それらが未使用としてマークされたのだと思います。私は以下のコマンドを実行できました。

rake uploads:recover_from_tombstone

その結果、埋め込まれていた画像がすべて復元され、現在は私の S3 CDN を指しているようです。

参考までに、yTDVQSa4wbIeLGEZvE7muXe8sAJ という文字列からアップロード記録を特定した手順も共有します。

[14] pry(main)> Base62.decode("yTDVQSa4wbIeLGEZvE7muXe8sAJ").to_s(16)
=> "f49428d6af35d7e0414408ccb65e7316f5003215"
[15] pry(main)> Upload.where( "original_filename ilike '%f49428d6af35d7e0414408ccb65e7316f5003215%'" )
=> [#<Upload:0x000056313aa91fe8
  id: 899,
  user_id: 549,
  original_filename: "f49428d6af35d7e0414408ccb65e7316f5003215.png",
  filesize: 25514,
  width: 1169,
  height: 984,
  url: "//ortus-discourse-uploads.s3.dualstack.us-west-2.amazonaws.com/original/1X/f49428d6af35d7e0414408ccb65e7316f5003215.png",
  created_at: Tue, 12 Jan 2021 23:01:35 UTC +00:00,
  updated_at: Tue, 12 Jan 2021 23:01:36 UTC +00:00,
  sha1: "f49428d6af35d7e0414408ccb65e7316f5003215",
  origin: nil,
  retain_hours: nil,
  extension: "png",
  thumbnail_width: 594,
  thumbnail_height: 500,
  etag: "6977f35ddbf39a4399dc76f92a5079d4",
  secure: false,
  access_control_post_id: nil,
  original_sha1: nil,
  animated: nil,
  verification_status: 1>]

@Falco さん、再びご協力いただきありがとうございます。Discourse は初心者ですが、とても忍耐強く親切に対応していただいております :+1: