Como restaurar imagens S3 ausentes de postagem

Um dos meus posts perdeu suas imagens aleatoriamente. Executei PostCustomField.where(name: Post::MISSING_UPLOADS) no console do Rails e obtive o seguinte:

[#<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>,

Como são apenas 14 imagens em um único post, estou bem em corrigir manualmente, mas não faço ideia de como encontrar as imagens originais no meu bucket S3. Tentei pesquisar pelos nomes dos arquivos aqui, mas não obtive resultados:

Eu não uso S3 per se, mas não seria o fato de suas imagens não estarem lá que as faria sumir?

Sério: há logs que você possa verificar para esses nomes de arquivo? Talvez algo estranho as tenha excluído programaticamente?

O problema é que o console web do S3 parece pesquisar apenas na pasta atual. Se eu navego até uma pasta específica e procuro por um arquivo que está dentro dela, ele o encontra. Se eu subo para a pasta pai, ele não o encontra.

Você precisa converter as URLs de upload:// em nomes de arquivo reais primeiro.

Obrigado, Michael. Isso seria útil, mas não consigo descobrir como obter o caminho completo. No console do Rails, posso fazer isso, mas não me dá o nome do arquivo real:

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

Depende de muitos fatores, mas como o arquivo está supostamente faltando, ele pode estar no local errado de qualquer forma. Agora que você conhece o nome do arquivo, não é muito trabalho navegar pelo S3 e ver se encontra um arquivo correspondente.

Você também pode tentar encontrar um Upload no banco de dados onde o sha1 corresponda a essa string e o registro de upload tenha um caminho. Mas, novamente: se tudo estivesse correto, não estaríamos discutindo esse problema.