Kann ich das 1024000 KB Limit für Anhänge erhöhen?

Ich verwende S3 für die Speicherung von Anhängen, was bis zu 160 GB bewältigen kann.
Ich habe das Nginx-Limit auf 0 (unbegrenzt) geändert.
Der app.yml-Parameter “upload_size” ist ebenfalls auf 0 gesetzt.

Wir laden nicht direkt auf S3 hoch; die Daten gelangen zunächst auf deinen Server, und der Server sendet sie dann an S3. Das bedeutet, du solltest kein Limit festlegen, das größer ist als dein verfügbarer Festplattenspeicher.

Okay, ich möchte das Limit auf 10 GB setzen, da ich genügend Festplattenspeicher habe. Aber wie kann ich das Discourse-Limit ändern?

Sie können das Maximum mit einem benutzerdefinierten Plugin überschreiben. Sie können dieses hier als Beispiel verwenden:

Vielen Dank, ich kann bestätigen, dass das Limit mit diesem Plugin und den folgenden Einstellungen aufgehoben ist:

files:
  max_attachment_size_kb:
    client: true
    default: 1024000
    max: 6144000

Ich habe jedoch zwei Probleme:

  1. Beim Hochladen einer 2-GB-Datei läuft der Upload bis 100 % erfolgreich, schlägt dann aber mit einem allgemeinen Popup-Fehler fehl.
  2. Jedes Mal, wenn ich dies versuche, wächst das Discourse-Docker-Image um 2 GB und löscht diese Daten nicht!! Ich habe fast keinen Speicherplatz mehr übrig. Wie kann ich dies bereinigen?

Du bist besser beraten, einen Cloud-Speicherdienst deiner Wahl zu nutzen und die Dateien in Discourse-Themen zu verlinken. Discourse ist nicht als Tool zur Speicherung großer Dateien gedacht.

Ich verwende S3-Cloud-Speicher. Es sollen keine Daten auf Discourse selbst gespeichert werden.

Das ist nicht, was ich meine – ich meine einen Consumer-Cloud-Laufwerksdienst wie Google Drive, OneDrive, Dropbox usw.

Egal wie du es machst, Discourse ist nicht dafür ausgelegt, große Dateien zu verarbeiten.

Egal, wo die Datei landet: Discourse ist ebenfalls nicht als sperriger Datei-Upload-Mechanismus gedacht.

Ich verstehe, dass dies nicht beabsichtigt war, aber es wäre eine großartige Funktion für mich und würde die Benutzererfahrung verbessern, wenn Nutzer nicht zu einem anderen Dienst wechseln müssen, um etwas hochzuladen, und dann zurück zu Discourse kommen müssen.
Ich hoffe also, dass Sie es mir nicht übel nehmen, wenn ich versuche, es zum Laufen zu bringen, obwohl dies nicht die Absicht der ursprünglichen Entwicklung war.

Die Wunder von Open Source liegen darin, dass du frei bist, herumzuprobieren.

Genauso gibt es, wenn etwas nicht unterstützt wird, keine Garantie dafür, dass zukünftige Änderungen an Discourse die Anpassungen, die du heute vornimmst, in Zukunft völlig unbrauchbar machen.

Ich erwäge, auf meiner Website ebenfalls das Hochladen großer Dateien zuzulassen (diese könnten 50 MB groß sein, und es ist möglich, dass über die API Massenhochladungen erfolgen). Ich versuche lediglich, die Bedenken hier zu verstehen. Wenn S3 so konfiguriert ist, dass es das Hochladen und Speichern großer Dateien bewältigt, und das Discourse-Forum auf diese Dateien verlinkt, um den Nutzern einen Download-Link anzuzeigen, kann jemand dann näher erläutern, wo Sie erwarten, dass Discourse auf Probleme stoßen wird?

Die aktuelle Upload-Komponente ist einfach nicht für große Uploads ausgelegt (nur das Hochladen von Backups in der Admin-Oberfläche ist es).

Wir normalisieren und refaktorisieren derzeit unseren Upload-Code und planen, direkte Uploads zu S3 zu unterstützen. Sobald dies abgeschlossen ist, könnten technisch gesehen große Uploads zu S3 funktionieren.

Vielen Dank für die Informationen, @sam. Mir war bisher nicht klar, wie Datei-Uploads gespeichert werden. Es scheint also, dass Datei-Uploads standardmäßig auf demselben Server gespeichert werden, auf dem Discourse läuft – in diesem Fall verstehe ich, warum große Uploads problematisch sein könnten. Und ich habe verstanden, dass Sie daran arbeiten, in Zukunft direkte Uploads zu S3 zu unterstützen.

Was wäre, wenn Sie die Konfiguration jetzt so vornehmen, dass Datei-Uploads wie hier beschrieben an S3 gesendet werden?

Würde das den gleichen Vorteil bieten wie die geplante automatische Funktion in der Zukunft und Discourse ermöglichen, große Datei-Uploads (und Downloads) zu unterstützen?

Unser aktuelles Upload-System funktioniert nach dem Schema userdiscourse servers3.

Das neue System, das wir in wenigen Wochen einführen, funktioniert nach dem Schema users3.

Werden Websites einen reibungslosen Übergang zum neuen Upload-System schaffen können – sodass Uploads im alten System weiterhin funktionieren und auch die im neuen System?

Ich gehe davon aus, ja, da alles auf S3 gespeichert wird, wollte es aber gerne bestätigt haben. Danke.

Da die Dateien am selben Ort landen, nur mit weniger Umwegen, wird die Änderung für Benutzer und Administratoren transparent sein.

Zur Klarstellung: Ich gehe davon aus, dass die Nutzer keinerlei Veränderung bemerken werden – allenfalls, dass ihre Dateien (vielleicht?) schneller hoch- und heruntergeladen werden. Das würde zudem größere Datei-Uploads ermöglichen, falls die Administratoren dies wünschen. Stimmt das so?

Sie werden wahrscheinlich schneller hochgeladen. Die Downloads sollten unverändert bleiben (da die Funktion nur das Hochladen betrifft).

Ich nehme das an, aber es liegt an dem Discourse-Team, dazu eine offizielle Stellungnahme abzugeben.