Dopo aver installato Discourse (2.7.0.beta1) e importato i vecchi post di Google Groups, ho aggiunto la configurazione del bucket/chiave S3 (ma nessun URL CDN) ed eseguito
rake uploads:migrate_to_s3
che sembrava funzionare alla grande. Tutte le immagini sono state caricate su S3 e Discourse stava cercando di accedervi tramite un URL S3 generato automaticamente, qualcosa del genere:
https://ortus-discourse.s3.dualstack.us-west-2.amazonaws.com/original/1X/75747ca17a3ca01f298f836691e1990916bafccb.png
Poi ho rinominato il bucket (in ortus-discourse-uploads) e configurato una distribuzione Cloudfront davanti ad esso con un CNAME configurato su Cloudflare chiamato:
https://communitycdn.ortussolutions.com/
Il CNAME, Cloudfront e S3 funzionano tutti perfettamente. URL come questo servono correttamente una delle immagini nel bucket:
https://communitycdn.ortussolutions.com/original/1X/75747ca17a3ca01f298f836691e1990916bafccb.png
Tuttavia, il problema è che Discourse è completamente bloccato sul vecchio dominio ortus-discourse.s3.dualstack.us-west-2.amazonaws.com (che non funziona a causa della rinomina del bucket) e non importa quante volte ricompili il container o riforni i vecchi post, non riesco assolutamente a far sì che Discourse utilizzi il nuovo URL CDN. Ho cercato su Google per un giorno e ho rifatto il baking probabilmente una dozzina di volte (dentro il container app) con varie impostazioni. Ogni thread del forum dà lo stesso consiglio: ricompila e rifai il baking, ma non funziona.
Non sono solo le immagini nei post a essere rotte; anche il tag <link rel="icon" type="image/png" href=""> e il logo del sito sono bloccati sul vecchio dominio e non vogliono usare l’URL CDN di S3.
Ecco le mie attuali impostazioni S3:
DISCOURSE_S3_ACCESS_KEY_ID: '********'
DISCOURSE_S3_SECRET_ACCESS_KEY: '******'
DISCOURSE_BACKUP_LOCATION: 's3'
DISCOURSE_ENABLE_S3_UPLOADS: true
DISCOURSE_S3_BUCKET: 'ortus-discourse-uploads'
DISCOURSE_S3_UPLOAD_BUCKET: 'ortus-discourse-uploads'
DISCOURSE_S3_BACKUP_BUCKET: 'ortus-discourse-backups'
DISCOURSE_S3_REGION: 'us-west-2'
DISCOURSE_S3_CDN_URL: https://communitycdn.ortussolutions.com
DISCOURSE_CDN_URL: https://community.ortussolutions.com
Ho persino provato a mappare di nuovo il vecchio URL al nuovo URL nei post come segue:
rake posts:remap["ortus-discourse.s3.dualstack.us-west-2.amazonaws.com","communitycdn.ortussolutions.com"]
ma il comando ha detto che 0 post sono stati interessati.
In nessun punto delle mie variabili d’ambiente o delle impostazioni del DB ho qualcosa che fa riferimento al vecchio nome del bucket ortus-discourse, quindi non riesco a capire da dove Discourse continui a prenderlo. Sono nuovo di Discourse e non sono uno sviluppatore Ruby, quindi non ho scavato più a fondo di quanto riesco a vedere nel mio app.yml, nell’interfaccia di amministrazione e nell’output dei comandi rake che ho trovato sui forum.