Edição: Parece que seu erro foi diferente do meu. Parece que algumas das suas imagens não foram movidas para o S3. Desculpe, eu li errado. Talvez algumas das informações abaixo ainda sejam úteis. Você configurou seus uploads no S3 seguindo este guia? Configure an S3 compatible object storage provider for uploads
@evenif - Sinto muito em saber que você está tendo problemas com isso. Eu planejava escrever um guia sobre isso para pessoas que estão enfrentando os mesmos problemas, já que foi necessário reunir bastante informação de diferentes tópicos. Mas estou esperando para consertar os avatares, como você pode ver acima, ainda estou tendo problemas com isso.
Se você executar isso no Rails, obtém true ou false?
SiteSetting.migrate_to_new_scheme
Se for false, então você pode tentar defini-lo como true assim:
SiteSetting.migrate_to_new_scheme = true
Em seguida, espere um pouco e volte mais tarde (creio que isso roda a cada 15 minutos, se não me engano), mas se quiser executá-lo imediatamente:
Jobs::MigrateUploadScheme.new.execute(nil)
Depois, verifique novamente mais tarde se SiteSetting.migrate_to_new_scheme agora é false (o que significa que deve ter concluído).
Em seguida, execute:
Upload.by_users.where("url NOT LIKE '//%' AND url NOT LIKE '/uploads/default/original/_X/%'").to_a
Isso deve encontrar uploads que ainda têm problemas e não puderam ser migrados. No meu caso, todos esses uploads existiam como registros no banco de dados, mas as imagens reais não existiam.
Dependendo do tamanho da lista, você pode copiar a página e usar encontrar + substituir para criar uma lista de comandos para remover esses registros problemáticos usando a lista de IDs de upload.
Upload.find(1).destroy
Upload.find(2).destroy
Upload.find(3).destroy
Substituindo 1, 2, 3, etc., pelos IDs de upload. Copie e cole toda a lista no Rails e pressione Enter. Isso deve excluir esses registros problemáticos.
Depois, saia do Rails (digite exit) e tudo o que você precisa fazer é executar:
rake posts:rebake
ou
rake posts:rebake_uncooked_posts
A opção uncooked permite retomar o rebake se ele falhar. Recomendo usar o rebake normal, a menos que você tenha toneladas de uploads.
Então, tudo deve funcionar corretamente, espero. Mas há uma boa chance de que seus avatares otimizados estejam quebrados como os meus, mas os originais devem existir no S3.
Você pode verificar se os avatares foram migrados com sucesso (pelo menos para alguns usuários) executando isso no Rails para um usuário que está exibindo um avatar padrão:
User.find_by_username('nome_de_usuário').uploaded_avatar
Também pode verificar se as versões otimizadas existem usando:
OptimizedImage.where(upload_id: upload_id).where(version: 2)