Dopo aver spostato le immagini e le risorse (js) del mio sito su S3, ho provato a eseguire l’aggiornamento del forum utilizzando l’interfaccia /admin/upgrade. L’aggiornamento è andato a buon fine, ma sembra che le risorse non siano state caricate nel bucket S3, rendendo il sito non disponibile finché non ho ricostruito l’applicazione da riga di comando.
Ho impostato un hook che si occupa di questo per me. Sarebbe utile avere una funzionalità simile anche nell’interfaccia web. Non so se sia già presente; se lo è, fatemelo sapere.
No, non puoi spostare gli asset su S3 dall’area di amministrazione. Dovrai farlo tramite SSH, poiché sono necessarie attività aggiuntive al momento di questa migrazione, a meno che tu non stia eseguendo l’operazione su un’installazione pulita.
Ah, capisco. Mi piaceva il modo senza interruzioni di aggiornamento fino a quando non sono passato a S3. C’è un modo per non servire JS tramite S3 e solo le immagini?
Sì, non sto servendo JS direttamente da S3; è archiviato in S3 e poi distribuito tramite CDN. Ciò che volevo chiedere è se posso archiviare JS localmente e distribuirlo tramite CDN, conservando su S3 solo i file multimediali.
Stai sbagliando tutto, di nuovo.
Discourse JS è destinato a essere servito direttamente tramite CDN, con l’installazione di Discourse come origine di pull. Non so come potresti mettere JS su S3, ma tieni presente che JS viene rigenerato ad ogni rebuild. Qualsiasi cosa servissi tramite S3 sarebbe probabilmente obsoleta e rischieresti di creare ulteriori problemi.
È per questo che hanno aggiunto l’hook after_assets_precompile per caricare gli asset aggiornati su S3.
Come posso risolvere? Restituisce un errore 404 se provo ad accedere a qualsiasi asset tramite il server locale. Deve essere fatto tramite S3. Altrimenti avrei impostato una regola di routing edge sul mio CDN per recuperare le richieste di asset dal dominio locale.
Purtroppo, l’argomento menzionato non lo fa, anche se è effettivamente intitolato “utilizzo di object storage per gli upload”. Se configuri il tuo forum secondo le istruzioni contenute in quell’argomento, è necessario che le risorse vengano caricate su S3.