Konfigurieren Sie einen S3-kompatiblen Objektspeicheranbieter für Uploads

Hat Scaleway etwas geändert? Es hat bis vor 48 Stunden für mich funktioniert, aber jetzt funktioniert es nicht mehr.

1 „Gefällt mir“

Ist Ihre Rechnung bezahlt? Was ist falsch? Funktionieren Bilder? Sind sie alle weg oder können Sie einfach keine neuen hinzufügen?

1 „Gefällt mir“

Können Sie etwas mehr Unterstützung hinzufügen? Zum Beispiel ist Tencent COS aus China für chinesische Benutzer bequemer, und Tencent Cloud’s COS verfügt über CDN-Knoten auf der ganzen Welt, was sehr schnell zugänglich ist.

Haben Sie es versucht? Funktioniert es?

Ich habe es in der Testumgebung verwendet, aber ich kann nur bis Tencent COS sichern, und ich hoffe, dass die Discourse-Offiziellen die Unterstützung für Tencent COS hinzufügen, um Entwicklern aus China die Arbeit zu erleichtern.

1 „Gefällt mir“

Ich denke, Sie müssen mitteilen, was Sie getan haben und welche Fehler oder Probleme Sie hatten. Dann kann Ihnen vielleicht jemand vorschlagen, wie es funktionieren könnte. Sie könnten sich die anderen Beispiele ansehen und sehen, ob Sie diese verwenden können, um es zum Laufen zu bringen.

Ich halte es für unwahrscheinlich, dass sie Änderungen am Kern vornehmen werden, um dies zu unterstützen.

1 „Gefällt mir“

Backblaze:

  • Ich habe einen B2-Bucket in meinem Konto eingerichtet
  • Details zum Abschnitt env von app.yml hinzugefügt
  • ./launcher rebuild app ausgeführt

…aber ich sehe keine Bestätigung in meinem Discourse-Instanz-Dashboard, dass diese Einstellungen wirksam geworden sind. Wo sollte ich nachsehen?

1 „Gefällt mir“

Hallo,

Ich konnte Cloudflare R2 sowohl für Uploads als auch für Backups erfolgreich testen und verwenden. Detaillierter Beitrag hier Cloudflare R2: Navigating Setup and Handling Configuration Errors - #40 by kamaljain

Ich bitte Sie, es bei sich selbst zu testen und die Option „Works with Discourse“ für Cloudflare R2 auf „Yes“ zu setzen. Tatsächlich ist es einfacher als S3 und wirtschaftlicher, kostenlos, wenn der Speicherplatz weniger als 10 GB beträgt.

2 „Gefällt mir“

Ich habe auch ein Setup auf Multisite getestet und denke, dass es funktioniert.\n\nIch habe etwas gesehen, das mich fragen lässt, ob man eine Liste von Backups bekommen kann. Ich werde versuchen, mein Setup zu überprüfen.

1 „Gefällt mir“

Ich kann die Backups sehen. Habe die Wiederherstellung aber noch nicht versucht.

1 „Gefällt mir“

Hallo Bro, kann ich mit dir chatten? Ich habe ein Problem bei der Konfiguration mit Minio.
Danke.

iDrive Konfiguration

Ich wollte nur melden, dass die Verwendung der E2-Version von s3-Speicher von iDrive mit diesen Einstellungen perfekt funktioniert:

ENV-Einstellungen in der YAML-Datei

Stellen Sie sicher, dass Ihr Bucket in den iDrive-Einstellungen mindestens Public & Read-Berechtigungen hat.

Dies sind die Einstellungen, die ich für einen Bucket verwende, der uploads und backups teilt.

DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: your-region
DISCOURSE_S3_ENDPOINT: https://your-idrive-endpoint.dev
DISCOURSE_S3_ACCESS_KEY_ID: your-access-key
DISCOURSE_S3_SECRET_ACCESS_KEY: your-secret-key
DISCOURSE_S3_CDN_URL: https://your-custom-cdn-url.com/uploads
DISCOURSE_S3_BUCKET: your-bucket-name/uploads
DISCOURSE_S3_BACKUP_BUCKET: your-bucket-name/backups
DISCOURSE_BACKUP_LOCATION: s3
DISCOURSE_S3_INSTALL_CORS_RULE: false

Standardmäßig hat iDrive Share everything in this region with every origin … daher sollte es sofort funktionieren, unabhängig von den Quellen. Sperren Sie es bei Bedarf auf Ihre eigenen Domains.

Ich verwende ein Cloudflare-Origin-Zertifikat, um einen CNAME zu erstellen, der auf den iDrive-Endpunkt verweist.


Vorhandene Anhänge synchronisieren

Neu erstellen

Erstellen Sie die Anwendung nach der Änderung dieser ENV-Einstellungen neu.


Hochladen und erneut backuppen

Geben Sie dann den Container ein und führen Sie aus

rake uploads:migrate_to_s3

Beobachten Sie den Upload und führen Sie dann aus

rake posts:rebake_uncooked_posts

Verlassen Sie den Container


Zum hooks-Abschnitt der YAML-Datei hinzufügen

Im hooks-Abschnitt

after_assets_precompile:
    - exec:
        cd: $home
        cmd:
          - sudo -E -u discourse bundle exec rake s3:upload_assets
          - sudo -E -u discourse bundle exec rake s3:expire_missing_assets

Dies stellt sicher, dass js/css-Dateien nach Ihren Anhängen auf iDrive hochgeladen werden, andernfalls erhalten Sie eine Menge Konsolenfehler im Browser, da sie alle fehlen.


Neu erstellen

Erstellen Sie nach dem Einfügen des Assets-Befehls erneut neu.


Alles sollte in Ordnung sein!

2 „Gefällt mir“

[Zitat=“Zomphie, Beitrag:10, Thema:355282, Benutzername:Zomphie”]
[!] Ich kann bestätigen, dass Hetzner Object Storage mit S3 funktioniert.
[/Zitat]

Vielleicht sollte Hetzners Object Storage-Dienst in die Tabelle aufgenommen werden?

2 „Gefällt mir“

Ich konnte Contabo für Datei-Uploads verwenden. Sowohl alte (migrierte) Dateien als auch neue Uploads funktionierten einwandfrei. In meinem Fall war die Bucket-URL https://eu2.contabostorage.com/mybucket.
Der Trick war, EU2 als Bucket-Namen und https://contabostorage.com/mybucket als Endpunkt festzulegen.
Das einzige Problem ist, dass beim Laden der Seite auch andere Dateien wie Plugin-JS aus dem Bucket angefordert werden und diese nicht geladen werden, da die Dateien nicht verfügbar sind. Nun, ich habe verstanden, dass dies daran liegt, dass ich die CDN-URL gleich der Bucket-URL gesetzt habe. Das ist mir noch nicht ganz klar, kann mir jemand sagen, wie ich es einrichten kann? Soweit ich das verstanden habe, muss ich eine CNAME-Adresse erstellen, die auf die Hauptdomain (Discourse-Server) verweist und diese mit Cloudflare proxyen, ist das richtig?

1 „Gefällt mir“

Du hast diesen Teil übersehen:

1 „Gefällt mir“

Ich bin mir sicher, dass ich es getan habe, aber vielleicht habe ich einen Fehler gemacht. Am Ende habe ich ein Backup wiederhergestellt, daher erinnere ich mich nur vage… Aber dann frage ich mich, warum es nicht empfohlen wird, ein CDN als Bucket einzurichten? Welche Probleme kann das verursachen? Ich versuche es morgen noch einmal.
Danke

1 „Gefällt mir“

Ich glaube nicht, dass das von Ihnen beschriebene Problem dadurch verursacht wird, dass Sie die CDN-URL als Bucket-URL festgelegt haben (d. h. wenn Uploads funktionieren, aber Assets nicht).

2 „Gefällt mir“

Ich werde Sie morgen auf dem Laufenden halten, danke

1 „Gefällt mir“

Und es hat funktioniert :partying_face:
Schritt für Schritt, was ich getan habe, in der Hoffnung, anderen zu helfen:

app.yml bearbeitet und hinzugefügt

  after_assets_precompile:
    - exec:        cd: $home
        cmd:          - sudo -E -u discourse bundle exec rake s3:upload_assets
          - sudo -E -u discourse bundle exec rake s3:expire_missing_assets

nach hooks: (direkt nach git clone plugins…)
und

  DISCOURSE_USE_S3: true
  DISCOURSE_S3_REGION: EU
  DISCOURSE_S3_ENDPOINT: https://contabostorage.com/bucketname
  DISCOURSE_S3_ACCESS_KEY_ID: accesskey
  DISCOURSE_S3_SECRET_ACCESS_KEY: secretaccesskey
  DISCOURSE_S3_CDN_URL: https://eu2.contabostorage.com/randomlettersthatcontaboaddstothelinks:bucketname
  DISCOURSE_S3_BUCKET: eu2
  DISCOURSE_BACKUP_LOCATION: s3
  DISCOURSE_S3_INSTALL_CORS_RULE: false

nach den E-Mail-Einstellungen
dann habe ich die gleichen Werte im Discourse-Menü eingestellt und S3-Uploads aktiviert.
Die App neu erstellt mit

cd /var/discourse
sudo ./launcher rebuild app

dann

./launcher enter app
rake uploads:migrate_to_s3

Das dauert eine Weile, in meinem Fall ein paar Stunden (80.000 Dateien, 100 GB)

Wenn fertig

rake posts:rebake_uncooked_posts
4 „Gefällt mir“

Update: Einige Benutzer konnten die Website (Assets und Dateien) nicht laden. Wir haben festgestellt, dass die Domain contabostorage.com auf einigen Blockierlisten als Phishing-Website aufgeführt war. Die Lösung war einfach:

Richten Sie eine Subdomain files.mydomain.com ein, wie hier beschrieben: Can I Setup a Custom Domain for My Object Storage? : Contabo

Aktualisieren Sie DISCOURSE_S3_CDN_URL: https://files.mydomain.com in app.yml

Dann

cd /var/discourse
sudo ./launcher rebuild app

und um die Aufgabe abzuschließen

./launcher enter app
rake posts:rebake

Jetzt werden alle Assets und Uploads von https://files.mydomain.com/pathtofile/file.ext geladen.

Fertig

2 „Gefällt mir“