Es hat ewig gedauert, bis ich herausgefunden habe, wie man all das umsetzt, daher wollte ich diese Anleitung erstellen, um es anderen Leuten zu erleichtern. Das Ausliefern deiner Bilder auf diese Weise soll deine Website schneller laden lassen. Meine Discourse-Installation kombiniert einen DigitalOcean Droplet, BackBlaze B2 S3, BunnyCDN und die kostenlose Version von Cloudflare.
Ich habe mich nach etwas Recherche zu Zuverlässigkeit, Preisen und Benchmarks für diese Dienste entschieden. Sie schienen die besten Optionen für mich zu sein. Cloudflare hilft bei der Sicherheit, kann die Seite jedoch leicht verlangsamen, soweit ich das verstanden habe – du solltest das also selbst prüfen. Backblaze hat Partnerschaften sowohl mit Cloudflare als auch mit Bunny, die einen kostenlosen Datentransfer ermöglichen.
Obwohl Cloudflare als CDN bezeichnet wird, funktioniert es nicht wie ein herkömmliches CDN und wird wahrscheinlich nicht allein ausreichen, um S3 mit Discourse einzurichten. Du wirst möglicherweise einen weiteren CDN-Anbieter benötigen; BunnyCDN funktioniert bei mir gut. Falls jemand es erfolgreich nur mit Cloudflare geschafft hat, lass es mich bitte wissen ![]()
So richtest du Uploads auf S3 ein:
Zuerst musst du dich bei Backblaze anmelden, dann Buckets erstellen und die Details in die Discourse-Einstellungen eingeben:
Anschließend meldest du dich bei BunnyCDN an und befolgst diese Anleitung:
bunny.net - The Global Edge Platform that truly Hops (Empfehlungslink, ich erhalte 20 $ Gutschrift auf meiner Rechnung)
Nachdem du deine BunnyCDN-Pull-Zone erstellt hast, musst du die korrekte URL ermitteln, die du in die Discourse-Admin-Backend-Einstellung für „s3 cdn url" eingibst. Gehe zu deinem BunnyCDN-Dashboard > Pull Zones > Manage Pull Zones > klicke auf deine Zone > kopiere die URL neben „host name".
Die URL sollte ungefähr so aussehen: example.b-cdn.net, aber du musst sicherstellen, dass du https:// davor setzt, also: https://example.b-cdn.net
Speichere die Änderungen im Bereich der Discourse-Admin-Einstellungen.
Drücke in deinem Browser auf deiner Discourse-Website zweimal Strg+F5.
Führe einen Test durch, indem du ein Bild im Discourse-Text-Composer hochlädst. Untersuche das Testbild-Element oder sieh dir die Bildquelle an, um sicherzustellen, dass es funktioniert hat. Die URL sollte sich von deiner normalen Domain unterscheiden und etwa so aussehen: example.b-cdn.net / Dateiname
Ab jetzt wird jedes hochgeladene Bild in deinem Backblaze-Bucket gespeichert und belegt keinen Speicherplatz auf deinem DigitalOcean-Droplet ![]()
Uploads auf S3 sichern
Wenn du deine Discourse-Backups in deinem Backblaze-Bucket speichern möchtest, musst du Folgendes tun:
In der Anleitung, die ich weiter oben in diesem Thread verlinkt habe, beachte, wie erklärt wird, dass du zwei separate Buckets benötigst. Ein Bucket ist öffentlich; dies ist dein Upload-Bucket, in dem Benutzer Bilder auf deinem Forum hochladen können. Der andere Bucket ist privat; dies ist dein Backup-Bucket. Es ist wichtig, automatisierte Backups von Discourse zu erstellen, falls etwas kaputtgeht. Dann kannst du dein Backup laden und es reparieren.
Auf deinem BunnyCDN-Dashboard solltest du eine zweite Pull-Zone erstellen. Deine erste Pull-Zone war für Uploads, diese neue Pull-Zone ist für Backups.
bunnycdn dashboard > pull zones > add pull zone
Befolge dieselbe Anleitung, die ich früher verlinkt habe: „How to Speed up your Backblaze B2 file delivery with BunnyCDN" von BunnyCDN, verknüpfe diesmal jedoch die neue Pull-Zone mit deinem Backup-Bucket statt mit deinem Upload-Bucket.
Ich empfehle, auf der Seite zur Erstellung einer BunnyCDN-Pull-Zone das „High Volume Tier 5 /TB" zu verwenden. Ich denke, für Backups ist das teurere/schnellere „Standard Tier 10 /TB", das ich für meinen Upload-Bucket genutzt habe, nicht notwendig.
Richte deine Backup-Einstellungen im Bereich der Discourse-Admin-Einstellungen ein. „Backup location" sollte auf S3 gesetzt sein und „s3 endpoint" sollte auf deinen Backblaze-Endpunkt zeigen, etwas wie:
s3.us-west-002.backblazeb2.com
Drücke zweimal Strg+F5 auf deiner Website, um den Cache zu leeren.
Starte ein Backup und warte, bis es abgeschlossen ist. Warte dann 5 Minuten und prüfe deinen Backblaze-Backup-Ordner; du solltest das neue Backup dort sehen.
Ältere Bilder migrieren:
Dieser Schritt ist optional, aber empfehlenswert, besonders wenn dein Server wenig Speicherplatz hat. Du hast also alles für neue Bild-Uploads eingerichtet, aber ältere Bilder können ebenfalls in deine Buckets übertragen werden. Damit dieser Prozess funktioniert, musst du Folgendes befolgen:
Einrichten von Cloudflare CDN
Dieser Schritt ist optional, da Backblaze eine Partnerschaft eingegangen ist, die den Datentransfer zu Bunny ebenfalls kostenlos macht. Für zusätzliche Sicherheit und weitere Funktionen kannst du den Datenverkehr jedoch zunächst über Cloudflare leiten und dann Bunny das Abrufen der Daten von dem Ort lassen, an dem Cloudflare sie hinterlegt.
https://help.backblaze.com/hc/en-us/articles/217666928-Using-Backblaze-B2-with-the-Cloudflare-CDN


