Hallo zusammen,
ich möchte meine Erfahrungen und die Schritte teilen, wie ich Cloudflare R2 erfolgreich für Uploads und Backups in meinem Discourse-Forum konfiguriert habe. Ich hoffe, das hilft anderen, die Cloudflare R2 mit Discourse nutzen möchten.
Einrichtungsübersicht:
- Plattform: Discourse (Bitnami-Installation)
- Bucket: Cloudflare R2
- Benutzerdefinierte Domain: Für die öffentliche Bereitstellung von Dateien eingerichtet
- Konfiguration: Vollständig über die Discourse-Site-Einstellungen vorgenommen (keine Umgebungsvariablen wurden berührt)
Schritt-für-Schritt-Anleitung:
- Cloudflare R2 Bucket erstellen:
- Melden Sie sich bei Ihrem Cloudflare-Konto an und navigieren Sie zu R2 Storage.
- Erstellen Sie einen neuen Bucket für Ihre Discourse-Uploads (z. B.
forum-uploads). - Notieren Sie sich die Bucket S3 API URL, den Access Key ID und den Secret Access Key.
- Benutzerdefinierte Domain für CDN einrichten:
- Um Ihre R2 Bucket-Inhalte öffentlich bereitzustellen, erstellen Sie eine benutzerdefinierte Domain in Cloudflare.
- Ich habe zum Beispiel
forumfiles.example.inverwendet. - Stellen Sie sicher, dass die DNS-Einstellungen auf die von Cloudflare bereitgestellte CNAME verweisen. Da ich eine Domain bei Cloudflare habe, hat es das für mich erledigt.
- Discourse-Site-Einstellungen konfigurieren:
- s3_bucket: Ihr R2 Bucket-Name (z. B.
forum-uploads). - s3_region: Auf US East (N. Virginia) setzen. Es gab keine Option für Auto.
- s3_endpoint: Verwenden Sie Ihre von Cloudflare bereitgestellte Bucket S3 API URL (z. B.
https://\u003cyour-bucket-unique-id\u003e.r2.cloudflarestorage.com). - s3_access_key_id: Ihre R2 Access Key ID.
- s3_secret_access_key: Ihr R2 Secret Access Key.
- s3_cdn_url: Ihre benutzerdefinierte Domain für CDN (z. B.
https://forumfiles.example.in). - Stellen Sie sicher, dass enable s3 backups und enable s3 uploads aktiviert sind.
- s3_bucket: Ihr R2 Bucket-Name (z. B.
- Berechtigungen und CORS anpassen:
- Setzen Sie Ihren R2 Bucket auf privat und konfigurieren Sie eine CORS-Richtlinie:
[
{
"AllowedHeaders": ["*"],
"AllowedMethods": ["GET", "POST", "PUT", "HEAD"],
"AllowedOrigins": ["*"],
"ExposeHeaders": ["ETag"],
"MaxAgeSeconds": 3000
}
]
* Dies stellt sicher, dass die Uploads ohne CORS-Probleme korrekt funktionieren.
- Einrichtung testen:
- Laden Sie eine Testdatei oder ein Bild über Ihr Discourse-Forum hoch, um zu überprüfen, ob die Uploads korrekt funktionieren.
- Prüfen Sie, ob die Dateien über Ihre benutzerdefinierte Domain zugänglich sind (z. B.
https://forumfiles.example.in/original/1X/...). - Überprüfen Sie die Backups. Ich konnte erfolgreich Backups ausführen. Ich habe sie im R2 Bucket gegengeprüft und sie sind auch in den Site-Einstellungen aufgeführt.
Fazit:
Durch Befolgen dieser Schritte konnte ich Cloudflare R2 nahtlos in Discourse integrieren und sowohl Uploads als auch Backups effizient verwalten. Wenn Sie Fragen haben oder auf Probleme stoßen, können Sie diese gerne stellen!