Le opzioni “Secure Media” e “Enable S3 Uploads” sembrano causare problemi con i loghi delle categorie.
Recentemente ho scoperto che i documenti caricati potevano essere visualizzati o scaricati tramite un link URL diretto da parte di utenti che non avevano accesso al post privato in cui il documento era stato caricato. Avevo capito che per utilizzare la funzione Secure Media era necessario prima abilitare S3 Uploads, quindi l’ho attivato e ho copiato manualmente i file dal server Discourse al bucket S3. Successivamente ho seguito questa discussione per abilitare Secure Media:
Dopo aver seguito questa procedura, ho dovuto eseguire un remap di Discourse per cambiare /uploads/default/ in //bucketname-etc-etc/. Dopo il remap, ho eseguito rake posts:rebake e tutto sembrava funzionare correttamente nella maggior parte dei casi. Tutti gli altri file caricati (documenti e immagini nei post, immagini di branding del sito, ecc.) continuavano a essere visualizzati e collegati correttamente dopo aver abilitato Secure Media ed eseguito le attività rake e remap appropriate. Ho dovuto ricaricare le avatar degli utenti e i loghi dei gruppi, ma una volta ricaricati, venivano tutti visualizzati correttamente e presentavano i nuovi URL brevi e gli URL secure-media-uploads come previsto.
Ho notato però che le immagini dei loghi delle categorie non venivano più visualizzate. Controllando con la modalità sviluppatore del browser, ho osservato che quando ricaricavo un’immagine del logo di una categoria, veniva creato l’URL secure-media-uploads corretto e l’immagine veniva visualizzata correttamente. Tuttavia, non appena cliccavo su “Salva categoria”, la pagina della categoria si ricaricava e tentava erroneamente di mappare direttamente l’URL non firmato di AWS S3 per l’immagine, impedendone la visualizzazione:
Ogni pagina di Discourse che visualizza un’immagine del logo di una categoria tenta di mappare l’immagine direttamente all’URL non firmato di AWS S3 invece che all’URL secure-media-uploads.
Come soluzione alternativa, ho dovuto visitare con grande fatica ogni oggetto immagine del logo di categoria in AWS S3 e modificare le autorizzazioni in “Lettura pubblica”.
Ho confermato che questo comportamento si verifica nei browser Chrome, Firefox e Microsoft Edge. Ho provato le attività rake posts:rebake e uploads:secure_upload_analyse_and_update, ma sembrano non avere alcun effetto sui loghi delle categorie. Esiste forse un’altra attività che possa correggere questi URL dei loghi delle categorie mappati in modo errato? Oppure questo è effettivamente previsto dal design, richiedendo che tutti gli oggetti caricati su S3 siano accessibili in lettura pubblica, tranne quelli protetti (post privati)?
