Ich habe einige Ingenieure, die einige Datendateien mit ungewöhnlichen Dateierweiterungen an ihre Beiträge anhängen möchten. Es handelt sich im Wesentlichen um reine Textdateien, die jedoch erweiterte ASCII-Zeichen enthalten.
Ich habe versucht, die NGINX-Konfiguration von Discourse zu aktualisieren, um MIME-Medientypen für diese Dateien anzugeben, aber es hat nicht funktioniert. Ich habe vor zwei Wochen ein Thema (How to customize MIME media type emitted for certain attachments?) dazu gepostet, aber bisher keine Antworten erhalten. Selbst wenn NGINX nicht aktualisiert wird, werden unbekannte Dateitypen immer noch mit dem Fallback-MIME-Typ „application/octet-stream“ ausgeliefert. Damit kann ich vorerst leben.
Wenn Benutzer jedoch versuchen, diese Datendateien in einen Beitrag hochzuladen (entweder über die Schaltfläche „Hochladen“ oder per Drag-and-Drop), erhalten sie eine Fehlermeldung von Discourse, ähnlich dieser:
Es scheint, dass Discourse beim Hochladen von Dateien versucht, „schlau“ zu sein und zu erkennen, ob es sich um ein Bild oder einen anderen Dateityp handelt. Darüber hinaus scheint es diese Bestimmung vorzunehmen, indem es die Dateiinhalte betrachtet (ähnlich dem Standard-Unix-Befehl „file“). Ich gehe davon aus, dass Discourse dadurch entscheiden kann, ob es die Datei direkt in den Beitrag einfügt oder als Anhang daneben platziert.
In diesem Fall identifiziert diese Prüfung die Datendateien fälschlicherweise als Bilder. Nur zum Spaß habe ich einige dieser Datendateien auf eine Ubuntu-Box gelegt und sie mit dem Befehl „file“ überprüft, und siehe da, sie wurden als „JPEG image data“ identifiziert.
Gibt es eine Möglichkeit, Dateien hochzuladen, ohne dass Discourse versucht zu erkennen, ob es sich um Bilder handelt? D.h. „Bitte laden Sie diese Datei als Anhang hoch, egal was passiert, fügen Sie sie nicht direkt ein“?
Alternativ könnte ich Discourse so konfigurieren, dass Zip-Dateien zugelassen werden, und den Benutzern sagen, sie sollen ihre Dateien vor dem Hochladen komprimieren, aber ich möchte die Website nicht für zufällige Zip-Datei-Uploads öffnen. Das scheint ein Sicherheitsproblem zu sein.
Vielen Dank im Voraus für jede Hilfe!




