Gli avatar impiegano molto tempo a caricarsi dopo il passaggio a R2 compatibile con S3

Wow, ok. Questo è probabilmente l’indizio decisivo e indica un problema diverso.

avatar_proxy nei log di solito significa che Discourse si rifiuta di servire l’avatar direttamente dal CDN Cloudflare R2. Invece, Discourse intercetta aggressivamente la richiesta e scarica l’immagine da R2 nella cartella /tmp del server locale, per poi utilizzare Ruby per servirla al browser. Quindi penso che questo stia aggirando completamente il CDN e spiega il ritardo di 3 secondi: sospetto che il server stia recuperando e caricando manualmente il file ad ogni singola richiesta :grimacing:

Discourse utilizza avatar_proxy in alcuni scenari molto specifici e di solito è un’impostazione di privacy o sicurezza che forza il server a mascherare l’URL esterno.

Controlla queste impostazioni in Amministrazione > Impostazioni sito:

Trova external system avatars url - se c’è qualcosa in quella casella (come /letter_avatar_proxy/v4/...), cancellalo in modo che sia vuoto. Questo dovrebbe impedire a Discourse di fare il proxy degli avatar predefiniti a lettere. Vale anche la pena controllare uploaded avatars allowed groups e assicurarsi che indichi TL_0.

Forse ricontrolla DISCOURSE_S3_CDN_URL per assicurarti che sia corretto, senza barra finale o errori di battitura?

Rimappa gli avatar personalizzati:
Sembra probabile che il tuo database contenga ancora gli URL grezzi del bucket R2 invece del tuo nuovo URL CDN; poiché non corrispondono, il tuo forum sta probabilmente facendone il proxy per motivi di sicurezza.

Controlla nella console Rails per vedere esattamente con cosa sta lottando Discourse:

./launcher enter app
rails c

Scegli un nome utente con un avatar a caricamento lento

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

Se l’output restituisce un URL grezzo del bucket, le tue precedenti rimappature non hanno colto tutto (forse potrebbe aver mancato un sottodominio o uno schema).

Per risolvere, accedi via SSH al tuo server, torna nel tuo container (non Rails) (./launcher enter app) ed esegui di nuovo lo strumento di rimappatura (ancora lol) per sostituire l’URL grezzo con il tuo URL CDN:

discourse remap "https://<il-tuo-url-grezzo-cloudflare>.r2.cloudflarestorage.com" "https://cdn.tuo-dominio.com"

Poi eseguilo una seconda volta usando // invece di https:// solo per sicurezza.

A proposito, per semplice curiosità, che servizio di hosting stai usando? Ho la stessa configurazione generale della tua e non ho ancora riscontrato questo problema. Quindi sono anche interessato alla tua configurazione e voglio provare a riprodurla in qualche modo.