Avatares demoram muito para carregar após a migração para o R2 compatível com S3

Uau, ok. Isso provavelmente é a prova definitiva e aponta para um problema diferente.

avatar_proxy nos logs geralmente significa que o Discourse está se recusando a servir o avatar diretamente da CDN R2 do Cloudflare. Em vez disso, o Discourse está interceptando agressivamente a solicitação e baixando a imagem do R2 para a pasta /tmp do servidor local, e então usando Ruby para servir a imagem ao navegador. Então, acho que isso está contornando completamente a CDN e explica o atraso de 3 segundos — suspeito que o servidor esteja buscando e carregando o arquivo manualmente em cada solicitação :grimacing:

O Discourse usa o avatar_proxy em alguns cenários muito específicos e, geralmente, é uma configuração de privacidade ou segurança que força o servidor a mascarar a URL externa.

Verifique essas configurações em Admin - Configurações do site:

Encontre external system avatars url — se houver algo nessa caixa (como /letter_avatar_proxy/v4/...), exclua para deixá-la vazia. Isso deve impedir que o Discourse faça proxy dos avatares de letra padrão. Também vale a pena verificar uploaded avatars allowed groups e garantir que esteja definido como TL_0.

Talvez verifique novamente DISCOURSE_S3_CDN_URL para garantir que esteja correto, sem barra no final ou erro de digitação?

Remapear avatares personalizados:
Parece provável que seu banco de dados ainda contenha as URLs brutas do bucket R2 em vez da sua nova URL de CDN; como elas não coincidem, seu fórum provavelmente está fazendo proxy delas por motivos de segurança.

Verifique no console do Rails para ver exatamente com o que o Discourse está lutando:

./launcher enter app
rails c

Escolha um usuário com um avatar de carregamento lento

u = User.find_by_username("o_usuario_escolhido")
u.user_avatar.custom_upload.url

Se a saída retornar uma URL de bucket bruta, seus remapeamentos anteriores não capturaram tudo (talvez tenha perdido um subdomínio ou um esquema).

Para corrigir, faça SSH no seu servidor, volte para o seu container novamente (não o Rails) (./launcher enter app) e execute a ferramenta de remapeamento (de novo, rs) para trocar a URL bruta pela sua URL de CDN:

discourse remap "https://<sua-url-bruta-cloudflare>.r2.cloudflarestorage.com" "https://cdn.seu-dominio.com"

Em seguida, execute novamente usando // em vez de https://, só para garantir.

A propósito, por curiosidade, qual serviço de hospedagem você está usando? Tenho a mesma configuração geral que você e ainda não experimentei esse problema. Então, também estou interessado na sua configuração e quero tentar reproduzi-la de alguma forma.