Ich kann Backups herunterladen, ich hatte damit noch nie Probleme.
Mit S3-Uploads inklusive?
Vielen Dank, sehr nützlich. Nur wenn ich das Bild aus der Zwischenablage kopiere, funktioniert es nicht. Haben Sie dieses Problem auch? Am Ende wurde es nach R2 hochgeladen, war aber im Beitrag nicht sichtbar:
Haben Sie sich die Bild-URL angesehen, wie sieht sie aus?
Wir können r2 also immer noch nicht über app.yml konfigurieren? Nur über die Website-Einstellung, das heißt DB_S3_CONFIG?
Verwenden Sie diese Methode, können Sie die alten lokalen Uploads über rake uploads : migrate to s3 nach R2 hochladen?
Hallo, vielen Dank an alle dafür.
Wenn ich das richtig verstehe, kann “DISCOURSE_CDN_URL” dasselbe sein wie “DISCOURSE_S3_CDN_URL”, was die benutzerdefinierte öffentliche Domain ist, die mit dem Bucket auf Cloudflare verknüpft ist? Oder ist hier eine andere Konfiguration erforderlich?
Ja, Sie müssen denselben Domainnamen zur discourse container.yml hinzufügen. Hier ist ein Anwendungsbeispiel:
## Die HTTP- oder HTTPS-CDN-Adresse für diese Discourse-Instanz (konfiguriert zum Abrufen)
## Weitere Informationen finden Sie unter https://meta.discourse.org/t/14857
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
#DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: 'auto'
DISCOURSE_S3_ENDPOINT: 'https://45dv544v56x****************************564564.eu.r2.cloudflarestorage.com'
DISCOURSE_S3_ACCESS_KEY_ID: '564dfds4f54sdfs********65564545'
DISCOURSE_S3_SECRET_ACCESS_KEY: 'sddfsdf564564**********6545sd4f54sd56f4s6d5'
DISCOURSE_S3_CDN_URL: 'https://cdn.discourse.com.br'
##DISCOURSE_CDN_URL: 'https://cdn.discourse.com.br'
#DISCOURSE_S3_BUCKET: 'cloudflarebucketname'
#DISCOURSE_S3_BACKUP_BUCKET: 'cloudflarebackupbucketname/backups'
#DISCOURSE_BACKUP_LOCATION: 's3'
DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS: true
DISCOURSE_S3_INSTALL_CORS_RULE: false
Die mit diesem Zeichen deaktivierten Einstellungen sollten über das Admin-Panel konfiguriert werden; Beispiele sind im Code angegeben. Wenn Sie möchten, können Sie diese Einstellungen auch im Konfigurationsbereich aktivieren, es liegt an Ihnen.
Diese Option wird die Website brechen, wenn sie in app.yml gesetzt wird, da aus irgendeinem Grund nicht alle statischen Dateien wie JavaScript auf R2 gehostet werden.
Das ist großartig. Ich habe gerade die Anleitung in Beitrag Nr. 39 befolgt und alles hat funktioniert. Ich habe nur einen Vorschlag und 2 Fragen.
Vorschlag:
Soweit ich gelesen habe, sollten Sie die CDN-Dateien als öffentlich zugänglichen Bucket und den Backup-Bucket als privat einrichten. Ich habe also 2 Buckets erstellt und den Backup-Bucket privat gelassen, während ich den Dateien-Bucket mit einer benutzerdefinierten Domain öffentlich gemacht habe. Das bedeutete nur, dass ich 2 verschiedene Pfade in die 2 Felder unter Admin eingeben musste.
Ich habe viele Leute gesehen, die ihre Backups als Pfad ihres Top-Level-Buckets angelegt haben. Denke ich da falsch? Oder ist das nur eine Eigenart von CF R2?
Frage 1:
Ich habe ‘DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS: true’ in meine app.yml eingefügt und neu kompiliert, aber wenn ich zu Backups gehe und auf den Backup-Button klicke, erhalte ich immer noch das Popup, das mir sagt, dass Uploads nicht enthalten sein werden. Liegt das nur daran, dass das Popup keine Logik darunter hat oder stimmt etwas nicht?
Frage 2:
Wenn ich aktuelle Uploads nach R2 verschieben möchte, wie lauten die prägnanten Befehle?
Ich habe mich umgesehen und Folgendes versucht:
./launcher enter app
rake uploads:migrate_to_s3
rake posts:rebake_uncooked_posts
Aber es sieht so aus, als ob der erste Rake-Befehl nur funktioniert, wenn ich die S3-Optionen in der app.yml-Datei festlege. Stimmt das?
Wenn ich das tue, wird R2 weiterhin funktionieren?
Okay, getestet und für mangelhaft befunden.
Es sieht so aus, als ob der erste Rake-Befehl nur für AWS funktioniert.
rake aborted!
Seahorse::Client::NetworkingError: Failed to open TCP connection to exotics-unlimited.s3.auto.amazonaws.com:443 (getaddrinfo: Name or service not known) (Seahorse::Client::NetworkingError)
Gibt es einen anderen Befehl, der dasselbe für andere S3-Anbieter tut?
Haben Sie weitere Nachforschungen angestellt, um zu sehen, ob wir R2 als voll funktionsfähige Lösung erhalten können?
R2 funktioniert einwandfrei; verwenden oder setzen Sie diese Option einfach nicht: DISCOURSE_CDN_URL
R2 funktioniert einwandfrei; verwenden oder setzen Sie diese Option einfach nicht:
DISCOURSE_CDN_URL
Richtig, was bedeutet, dass es nicht vollständig funktioniert, da einige statische Dateien nicht korrekt gepusht/gehostet werden.
Ich möchte nur, dass alles funktioniert, anstatt nur ein Teil davon.
Ich kann DC nicht davon abhalten zu denken, es sei AWS, obwohl es CF R2 ist, die Backups werden einfach nicht hochgeladen. Ich möchte es nur für Backup-Zips verwenden, anstatt für AWS. Ich glaube, ich habe alle Einstellungen und mein Zugriffstoken mit dem Geltungsbereich “Objekt lesen und schreiben” für diesen spezifischen Bucket korrekt ausgefüllt. Habe auch die CORS-Richtlinie aus dem Thread hinzugefügt.
[2025-09-06 13:56:44] Archiv wird komprimiert, das kann eine Weile dauern...
[2025-09-06 13:56:49] Archiv wird hochgeladen...
[2025-09-06 13:56:49] AUSNAHME: Aws::S3::Errors::Forbidden
[2025-09-06 13:56:49] /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/object.rb:559:in `rescue in exists?'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/object.rb:554:in `exists?'
/var/www/discourse/lib/backup_restore/s3_backup_store.rb:46:in `upload_file'
/var/www/discourse/lib/backup_restore/backuper.rb:351:in `upload_archive'
/var/www/discourse/lib/backup_restore/backuper.rb:41:in `run'
/var/www/discourse/script/spawn_backup_restore.rb:9:in `backup'
/var/www/discourse/script/spawn_backup_restore.rb:31:in `block in <main>'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `fork'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `<main>'
[2025-09-06 13:56:49] Alte Backups werden gelöscht...
[2025-09-06 13:56:49] Aufräumarbeiten werden durchgeführt...
[2025-09-06 13:56:49] Archiv wird aus lokalem Speicher entfernt...
[2025-09-06 13:56:49] '.tar'-Überbleibsel werden entfernt...
[2025-09-06 13:56:49] Markiere Backup als abgeschlossen...
[2025-09-06 13:56:49] Benachrichtige 'Firsh' über das Ende des Backups...
[2025-09-06 13:56:54] Fertig!
Das scheint auch für mich gut zu funktionieren! (Denken Sie daran, die CDN-URL festzulegen, andernfalls funktionieren Uploads, aber Gets nicht)

