Configuração de região s3 atualizada não funciona para ativos recém-carregados

Após alterar a configuração s3_region do Discourse de us-east-1 (padrão) para us-west-2, as imagens recém-carregadas foram enviadas com sucesso para o S3, mas o Discourse tentou referenciá-las na região anterior, us-east-1, fazendo com que as imagens recém-carregadas quebrassem.

Ex: Para imagens recém-carregadas…
Esperado: my-bucket.s3.dualstack.us-west-2.amazonaws.com/original/1X/xyz.png
Atual: my-bucket.s3.dualstack.us-east-1.amazonaws.com/original/1X/xyz.png

Solução alternativa Executar discourse remap //my-bucket.s3.dualstack.us-east-1.amazonaws.com //my-bucket.s3.dualstack.us-west-2.amazonaws.com fez com que o sistema usasse a s3_region correta para imagens recém-carregadas (além de corrigir imagens carregadas anteriormente, como esperado).

Estranhamente, o problema era intermitente. Isso pode ter funcionado para imagens carregadas anteriormente. Não tenho certeza.

A maioria das pessoas provavelmente executa remap de qualquer maneira ao alterar essa configuração. No meu caso, estava configurando um novo fórum. Simplesmente alterei a configuração de uma maneira, depois de outra, fazendo com que todos os uploads de imagens quebrassem.

Verifiquei esse comportamento no commit mais recente em main ontem: (commit: 967946378)

Problemas / conversas relacionadas

Algumas notas para quem encontrar isso mais tarde (incluindo eu mesmo):

Estou executando o Discourse a partir do instalador da Digital Ocean. Para executar remap ou outros scripts do Discourse:

  • Conecte-se via SSH ao seu servidor
  • cd /var/discourse
  • Entre no contêiner executando ./launcher enter app
  • cd /var/www/discourse
  • discourse remap //my-bucket.s3.dualstack.us-east-1.amazonaws.com //my-bucket.s3.dualstack.us-west-2.amazonaws.com (Uma vez aqui, você também pode executar outros scripts do Discourse)

Veja como executar scripts rake / discourse em instalações Bitnami

Não é um bug, pois é esperado que você precise remapear se alterar a localização de seus ativos.

1 curtida