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/discoursediscourse 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