Uploads ausentes após migração S3 → S3

Migrei os uploads de um bucket S3 para outro seguindo as dicas sugeridas aqui e, com a ajuda adicional de uploads:recover_from_tombstone e posts:rebake, tudo voltou a funcionar – mas não completamente.

Não sou um desenvolvedor Ruby, então minha capacidade de depuração é limitada. Ao executar uploads:recover agora, recebo muitas saídas como esta:

\u003e Aviso /t/foo/489/5 tinha um incorreto 4ff3ad05b76e1888161f41fd86da66efc16c290c deveria ser 0b029ef3549e72dd5e3498abc7f979736d279a5e armazenando em campo personalizado ‘rake uploads:fix_relative_upload_links’ pode corrigir isso
\u003e Aviso /t/bar/498/4 tinha um incorreto 0649edb23196a8c84a9d71c04147bd8f0c96d0f7 deveria ser f5b4e4bb3eedcd0fb83a06eecc4920f20c5e2bc4 armazenando em campo personalizado ‘rake uploads:fix_relative_upload_links’ pode corrigir isso
\u003e Aviso /t/bar/498/4 tinha um incorreto 0649edb23196a8c84a9d71c04147bd8f0c96d0f7 deveria ser f5b4e4bb3eedcd0fb83a06eecc4920f20c5e2bc4 armazenando em campo personalizado ‘rake uploads:fix_relative_upload_links’ pode corrigir isso

Esses avisos parecem corresponder a posts com uploads quebrados, então parece promissor. No entanto, ao executar fix_relative_upload_links, ele não parece fazer nada.

rake uploads:fix_relative_upload_links --trace
** Invoke uploads:fix_relative_upload_links (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute uploads:fix_relative_upload_links
pulando upload ausente em https://foo.com/t/bar/7/2 \u003cimg src=\"/uploads/default/35/f450f88541e87c52.png\" width=\"198\" height=\"70\"\u003e
pulando upload ausente em https://foo.com/t/bar/7/2 \u003cimg src=\"/uploads/default/36/0b73d33d9df37a66.png\" width=\"120\" height=\"43\"\u003e

(Acho que os dois arquivos pulados são uploads antigos pré-S3. Não há nenhuma saída para os uploads S3 que geraram os avisos anteriores.)

Há um relato de um problema semelhante de um ano atrás, mas não consigo ver nenhum relato semelhante que inclua uma correção.

Agradeço por não estar fazendo algo que seja oficialmente suportado, mas qualquer dica seria apreciada.

Só notei este problema alguns dias após a migração. Se eu tivesse notado imediatamente, teria tentado migrar novamente usando um backup fresco do banco de dados/S3, mas como não quero perder nenhum post recente, terei que trabalhar com o site ao vivo a partir de agora.

Obrigado.

Editar: Também já tentei converter os URLs quebrados upload:// e compará-los com os registros na tabela de uploads e não estou mais esclarecido.

Quando inspeciono um URL upload:// funcionando, ele mapeia para um registro na tabela uploads com um URL válido, mas quando inspeciono um quebrado, ele… também mapeia para um registro com um URL válido. Parece que há dados válidos no banco de dados e os arquivos existem no S3 no URL atribuído na tabela de uploads. Posso acessar os URLs S3 no meu navegador sem problemas, então não tenho ideia por que eles não estão sendo carregados.

1 curtida