Как восстановить отсутствующие изображения S3 из поста

Одно из моих сообщений случайно потеряло свои изображения. Я выполнил PostCustomField.where(name: Post::MISSING_UPLOADS) в консоли Rails и получил следующее:

[#<PostCustomField:0x00005636227c20a0
  id: 7335,
  post_id: 36,
  name: "missing uploads",
  value:
   "[\"upload://ljcw6gjRoPMD0IB5Vcc6K23VXIA.png\",
     \"upload://v6caNgjm6wDrHzN8MQdXYnlNJEs.png\",
     \"upload://bn2lC9z0Xp4Fit00p6KepGMZZ2h.png\",
     \"upload://omhuL50n5VfAxY8Reyf2rQFoEWb.jpeg\",
     \"upload://yJCRzx9SogObwuj1En0QciZdntF.jpeg\",
     \"upload://wOeXgaPEBBia8oS0xxbOr5NKNWo.gif\",
     \"upload://fuXMNACp8WoEHEr3ayciiVJjmNl.png\",
     \"upload://MTIX7g8Wu11qaJasGg5yGsFvJA.jpeg\",
     \"upload://oKle1GsOlPD85zeHiKRdUGJCCEM.jpeg\",
     \"upload://zY43AR6Xpga92HNzdEnxQRIVpYE.gif\",
     \"upload://ufigIPfGEPbDInHP4co0I0YDT51.png\",
     \"upload://h7A1BJjNwZZwuUTYWXCeASk7UAh.png\",
     \"upload://gmFGijsek8NmtfqBwAguIgkzDFP.png\",
     \"upload://qPFQBe9zvnTmOnqMhpofQF3oqCh.png\"]",
  created_at: Tue, 18 Feb 2020 17:44:40 UTC +00:00,
  updated_at: Tue, 18 Feb 2020 17:44:40 UTC +00:00>,

Поскольку речь идет всего лишь о 14 изображениях в одном сообщении, я готов исправить это вручную, но не знаю, как найти оригинальные изображения в своем S3-бакете. Я пытался искать по именам файлов здесь, но не получил никаких результатов:

Я не использую S3 собственно, но разве отсутствие ваших изображений не могло привести к их исчезновению?

Честно: есть ли логи, которые можно проверить на наличие этих имён файлов? Может быть, что-то странное удалило их программно?

Проблема в том, что веб-консоль S3, похоже, ищет только в текущей папке. Если я захожу в конкретную папку и ищу файл внутри неё, он находится. Если же я перехожу в родительскую папку, файл не находится.

Сначала нужно преобразовать ссылки вида upload:// в реальные имена файлов.

Спасибо, Майкл. Это было бы полезно, но я не могу понять, как получить полный путь. В консоли Rails я могу сделать следующее, но это не даёт мне настоящее имя файла:

Base62.decode("ljcw6gjRoPMD0IB5Vcc6K23VXIA").to_s(16)
=> "955952cf3952d2fad7c24528c08cfb79301a6260"

Это зависит от множества факторов, но так как файл, по сообщениям, отсутствует, возможно, он просто находится не в том месте. Теперь, когда вы знаете имя файла, не составит труда проверить S3 и посмотреть, не найдёте ли вы подходящий файл.

Вы также можете попытаться найти запись Upload в базе данных, где sha1 совпадает с этой строкой, а у записи загрузки есть путь. Но ещё раз: если бы всё было в порядке, мы бы не обсуждали эту проблему.