Konfigurieren Sie einen S3-kompatiblen Objektspeicheranbieter für Uploads

Hat jemand SeaweedFS verwendet? Angesichts der Unsicherheit bezüglich MinIO habe ich diese Option in Betracht gezogen und werde sie ausprobieren, um zu sehen, ob es Kompatibilitätsprobleme mit Discourse gibt.

Ich habe R2 zum Laufen gebracht, indem ich diese Reihe von Regeln verwendet habe:

  ## Diese Reihe von Zeilen ermöglicht das Hochladen und Herunterladen von R2 S3 gehosteten Dateien..
  DISCOURSE_USE_S3: true
  DISCOURSE_S3_REGION: auto
  DISCOURSE_S3_ACCESS_KEY_ID: access-key-id
  DISCOURSE_S3_SECRET_ACCESS_KEY: access-key
  DISCOURSE_S3_CDN_URL: https://eufiles.technospider.com
  DISCOURSE_S3_BUCKET: exotics-unlimited
  DISCOURSE_S3_BACKUP_BUCKET: exotics-unlimited-backups
  DISCOURSE_BACKUP_LOCATION: s3
#  DISCOURSE_CDN_URL: https://eufiles.technospider.com
  DISCOURSE_S3_ENDPOINT: https://71*****5d4976.r2.cloudflarestorage.com
#  DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS: true
  DISCOURSE_S3_INSTALL_CORS_RULE: false

Sobald ich die Zeile CDN_URL auskommentiert habe, funktionierte es. Ich nehme an, dass diese Zeile aufgrund der Tatsache, dass R2 das CDN automatisch erstellt, nicht benötigt wird und das Hinzufügen dieser Zeile die Dinge sogar kaputt macht.
Ich habe die Zeile zum Einschließen von Bildern auskommentiert, um meine Backup-Größen gering zu halten. Ich verwende die kostenlose Stufe bei R2 und möchte mein Limit nicht überschreiten.

Richtig. Sie sollten DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS wirklich nur dann verwenden, wenn Sie von S3 wegziehen. Es ergibt keinen Sinn, alle Bilder von S3 herunterzuladen, um sie in ein Backup aufzunehmen, das . . . auf S3 gespeichert ist. Ich habe das einmal auf einem AWS-Bucket aktiviert und bekam eine hohe Rechnung, weil jeden einzelnen Tag jedes einzelne Bild heruntergeladen wurde.

Dies soll ein separates CDN sein, das auf Ihren Discourse-Server zeigt, nicht auf den S3-Bucket. Einige Dinge, wie Avatare, und ich bin mir nicht sicher, was noch, werden von Ihrem Server ausgeliefert. Der Grund, warum es nicht funktioniert hat, ist, dass Sie Ihr S3-CDN anstelle des Site-CDNs angegeben haben.

Meinen Sie, wenn Sie 2 verschiedene Unternehmen verwenden? Eines für den Bucket und eines für den CDN? Ich kenne mich damit nicht gut aus, also brauche ich die Informationen, als wäre ich ein Drittklässler…
Ich weiß, dass, wenn Sie im R2-Interface eine „benutzerdefinierte Domain“ erstellen, diese als CDN fungiert. Deshalb habe ich zunächst versucht, diese Zeile hinzuzufügen.

Jedenfalls funktioniert es für meine Testseite einwandfrei, und sofern es nichts anderes gibt, was es tun sollte und nicht tut, würde ich empfehlen, den ursprünglichen Beitrag zu aktualisieren, um zu zeigen, dass Cloudflare jetzt mit Discourse funktioniert.

Nein. Das können Sie nicht tun. Es gibt nur einen S3-Schlüssel/-Geheimnis. Ich habe versucht, einen Grund zu konstruieren, um S3-Uploads einzubeziehen, aber es gibt keinen.

[quote=“tknospdr, post:499, topic:148916”]
Ich weiß, dass es, wenn man in der R2-Oberfläche eine „benutzerdefinierte Domain“ erstellt, als CDN fungiert, weshalb ich ursprünglich versucht habe, diese Zeile hinzuzufügen.
[/quote] Das ist für den S3-Bucket, nicht für Ihre Website. Es gibt zwei verschiedene Variablen: DISCOURSE_S3_CDN_URL und DISCOURSE_CDN_URL. Sie behandeln sie so, als wären sie dieselben. Sie können kein CDN für die Website verwenden, aber der Grund, warum es nicht funktionierte, als Sie diese Variable gesetzt haben, ist, dass Sie ihm das falsche CDN gegeben haben.

Okay, ich dachte, ich hätte eine leichte Ahnung, was ich tat, aber jetzt glaube ich, ich habe mich komplett verirrt.

Was ist also der Unterschied zwischen S3 CDN und CDN?

Würde es immer noch funktionieren, wenn ich diejenige von diesen beiden, die ich auskommentiert habe, umkehre?

Mir ist auch ein seltsames Problem mit dem Hintergrundbild meines Willkommensbanners aufgefallen, hängt das mit irgendetwas davon zusammen?