Nach der Installation von Discourse (2.7.0.beta1) und dem Import alter Google Groups-Beiträge habe ich die S3-Bucket-/Schlüsselkonfiguration hinzugefügt (jedoch keine CDN-URL) und ausgeführt:
rake uploads:migrate_to_s3
Dies schien hervorragend zu funktionieren. Alle Bilder wurden auf S3 hochgeladen, und Discourse versuchte, über eine automatisch generierte S3-URL darauf zuzugreifen – etwas wie:
https://ortus-discourse.s3.dualstack.us-west-2.amazonaws.com/original/1X/75747ca17a3ca01f298f836691e1990916bafccb.png
Anschließend habe ich den Bucket umbenannt (in ortus-discourse-uploads) und eine Cloudfront-Distribution davor eingerichtet, mit einem von Cloudflare konfigurierten CNAME namens:
https://communitycdn.ortussolutions.com/
Der CNAME, Cloudfront und S3 funktionieren alle einwandfrei. URLs wie diese liefern korrekt eines der Bilder im Bucket aus:
https://communitycdn.ortussolutions.com/original/1X/75747ca17a3ca01f298f836691e1990916bafccb.png
Das Problem ist jedoch, dass Discourse vollständig auf die alte Domain ortus-discourse.s3.dualstack.us-west-2.amazonaws.com festgefahren ist (die aufgrund des umbenannten Buckets nicht funktioniert), und egal wie oft ich den Container neu erstellt oder die alten Beiträge neu gebacken habe, ich kann Discourse auf keine Weise dazu bringen, die neue CDN-URL zu verwenden. Ich habe einen Tag lang danach gesucht und wahrscheinlich ein Dutzend Mal neu gebacken (innerhalb des app-Containers) mit verschiedenen Einstellungen. Jedes Forumsthema gibt denselben Rat – neu erstellen und neu backen –, aber es funktioniert nicht.
Es sind nicht nur die Bilder in den Beiträgen defekt; selbst das <link rel="icon" type="image/png" href=""> und das Site-Logo bleiben auf der alten Domain und verwenden nicht die S3-CDN-URL.
Hier sind meine aktuellen S3-Einstellungen:
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
Ich habe sogar versucht, die alte URL in Beiträgen wie folgt auf die neue URL umzuleiten:
rake posts:remap["ortus-discourse.s3.dualstack.us-west-2.amazonaws.com","communitycdn.ortussolutions.com"]
Der Befehl meldete jedoch, dass 0 Beiträge betroffen waren.
Nirgendwo in meinen Umgebungsvariablen oder DB-Einstellungen habe ich etwas, das auf den alten Bucket-Namen ortus-discourse verweist, daher kann ich nicht herausfinden, woher Discourse diesen bezieht. Ich bin neu bei Discourse und kein Ruby-Entwickler, daher habe ich nicht tiefer geschaut als das, was ich in meiner app.yml, der Admin-Oberfläche und der Ausgabe der rake-Befehle sehen kann, die ich in den Foren gefunden habe.