Pergunta complicada. Eu configurei o s3_bucket no config/discourse.conf, conforme mencionado no post que você linkou, o que resolveu esse erro específico, como observei lá.
Esse arquivo está dentro do container (./launcher enter app). Note que, para que essa configuração sobreviva ao comando ./launcher rebuild app, você também precisa adicionar DISCOURSE_S3_BUCKET na seção env do seu arquivo containers/app.yml.
O fato de eu ter corrigido o problema é o motivo de ter sido um post de desenvolvimento e não uma solicitação de suporte; eu estava perguntando o que os desenvolvedores consideram a solução correta enquanto continuo a fazer ajustes nesse código.
Tenho cerca de 100 GB de arquivos no S3, então estou avançando com muita cautela. Implementei um limite para os posts a serem analisados, e agora preciso implementar um limite para os posts a serem modificados. Tenho tentado fazer uma coisa de cada vez. O fato de esse código parecer pouco utilizado e eu ter visto esse erro repetidamente me preocupa quanto à deterioração do código (code rot), e não quero estragar acidentalmente todo o meu site por causa de um bug; isso parece ser uma boa maneira de cometer esse erro.
-
Para uploads com o prefixo
upload://(no meu caso, isso significa uploads que não são de vídeo), até agora, parece estar funcionando. Estou processando um de cada vez e revisando o post afetado para garantir que tudo funcione corretamente. -
Para uploads que não usam a sintaxe
upload://(no meu caso, isso significa uploads de vídeo, pelo que pude constatar), onde há uma referência literal à URL no S3, as URLs estão sendo corrompidas. Não é um bug difícil de corrigir assim que eu descobrir com certeza para o que devo alterá-las, mas ainda não fiz isso. Então, isso provavelmente será um dos PRs que publicarei em breve.
Esse é um projeto de tempo livre para mim, então não há garantias quanto ao prazo.