Одно из моих сообщений случайно потеряло свои изображения. Я выполнил 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, похоже, ищет только в текущей папке. Если я захожу в конкретную папку и ищу файл внутри неё, он находится. Если же я перехожу в родительскую папку, файл не находится.
Спасибо, Майкл. Это было бы полезно, но я не могу понять, как получить полный путь. В консоли Rails я могу сделать следующее, но это не даёт мне настоящее имя файла:
Это зависит от множества факторов, но так как файл, по сообщениям, отсутствует, возможно, он просто находится не в том месте. Теперь, когда вы знаете имя файла, не составит труда проверить S3 и посмотреть, не найдёте ли вы подходящий файл.
Вы также можете попытаться найти запись Upload в базе данных, где sha1 совпадает с этой строкой, а у записи загрузки есть путь. Но ещё раз: если бы всё было в порядке, мы бы не обсуждали эту проблему.