Olá. Acabamos de migrar do Discourse EC2 para o Discourse ECS (serviço de contêiner). Quando estávamos no EC2, o S3 Uploads ainda não estava configurado. Antes da migração, copiamos todas as imagens do EC2 para o bucket S3 (com acesso público). No entanto, após realizar a migração com o S3 Uploads ativado (ainda sem CDN), notamos que as imagens (e os avatares) não carregaram de forma alguma.
Só para confirmar, isso deve ser executado apenas no EC2? Existe outra maneira de migrar os uploads ou atualizar as URLs das imagens? Atualmente, a instância do EC2 está parada e a configuração atual do ECS já usa o domínio e o banco de dados/cache, então não tenho certeza se podemos apontar o domínio e o banco de dados/cache de volta para o EC2 antigo (e depois reconstruir) sem tempo de inatividade. Obrigado.
Você quererá executar o comando em uma instância que tenha acesso às imagens. Ah, mas se você as moveu para o S3 manualmente, então talvez precise fazer alguns ajustes na tabela de uploads.
Tenho trabalhado em um tutorial com instruções para migrar de um bucket para outro, que você pode usar para resolver seu problema, embora precise adaptar essas instruções para considerar suas mudanças de local para bucket, em vez de bucket para bucket.
Se eu fosse cobrar uma taxa fixa pelo serviço, provavelmente cobraria 4 horas, embora, se você pagasse por hora, poderia ser apenas uma.
Ah! Desculpe. Acabei de perceber isso. Se o EC2 estiver usando o mesmo banco de dados, talvez você consiga reiniciá-lo (mantendo o ECS no lugar) e executar a tarefa migrate-to-s3 ali; primeiro, você precisará colocar todas as configurações do S3 em variáveis de ambiente, conforme descrito em Usando Armazenamento de Objetos para Uploads (S3 e Clones). Essa provavelmente é a solução mais fácil. Recomendo fazer um backup apenas do banco de dados antes de começar.