Die Optionen „Secure Media“ und „Enable S3 Uploads“ scheinen die Kategorie-Logos zu stören.
Ich habe kürzlich festgestellt, dass hochgeladene Dokumente über direkte URL-Links von Benutzern eingesehen bzw. heruntergeladen werden konnten, die keinen Zugriff auf den privaten Beitrag hatten, in dem das Dokument hochgeladen wurde. Ich war der Auffassung, dass zunächst „S3 Uploads“ aktiviert werden muss, um die „Secure Media“-Funktion zu nutzen. Daher habe ich das zunächst aktiviert und die Uploads manuell vom Discourse-Server in den S3-Bucket kopiert. Anschließend habe ich diesen Beitrag befolgt, um „Secure Media“ zu aktivieren:
Nach Befolgen dieses Verfahrens musste ich ein „discourse remap“ durchführen, um /uploads/default/ in //bucketname-etc-etc/ zu ändern. Nach dem Remap habe ich rake posts:rebake ausgeführt, und im Großen und Ganzen sah alles gut aus. Alle anderen Uploads (Dokumente und Bilder in Beiträgen, Bilder für die Website-Branding usw.) wurden weiterhin korrekt angezeigt und verlinkt, nachdem „Secure Media“ aktiviert und die entsprechenden Rake- und Remap-Aufgaben ausgeführt worden waren. Ich musste zwar Benutzer-Avatare und Gruppenlogos erneut hochladen, aber sobald diese neu hochgeladen waren, wurden sie alle korrekt angezeigt und hatten erwartungsgemäß die neuen kurzen URLs sowie die „secure-media-uploads“-URLs.
Ich habe jedoch festgestellt, dass die Kategorie-Logo-Bilder nicht mehr angezeigt wurden. Beim Überprüfen im Entwicklermodus meines Browsers fiel mir auf, dass beim erneuten Hochladen eines Kategorie-Logo-Bildes die korrekte „secure-media-uploads“-URL erstellt wurde und das Bild korrekt angezeigt wurde. Sobald ich jedoch auf „Kategorie speichern“ klickte, wurde die Kategorie-Seite neu geladen und versuchte fälschlicherweise, direkt auf die ungesignierte AWS-S3-URL für das Bild zuzugreifen, wodurch die Anzeige des Bildes verhindert wurde:
Jede Seite in Discourse, die ein Kategorie-Logo-Bild anzeigt, versucht, das Bild direkt auf die ungesignierte AWS-S3-URL statt auf die „secure-media-uploads“-URL abzubilden.
Als Workaround musste ich mühsam jedes Kategorie-Logo-Bild-Objekt in AWS S3 aufrufen und die Berechtigungen auf „Public Read“ ändern.
Ich habe bestätigt, dass dieses Verhalten in den Browsern Chrome, Firefox und Microsoft Edge auftritt. Ich habe die Rake-Aufgaben posts:rebake und uploads:secure_upload_analyse_and_update ausgeführt, aber diese scheinen nichts mit dem Kategorie-Logo zu bewirken. Gibt es vielleicht eine andere Aufgabe, die diese falsch abgebildeten Kategorie-Logo-Bild-URLs behebt? Oder ist dies tatsächlich beabsichtigt, sodass alle S3-Upload-Objekte außer denen, die sicher sind (private Beiträge), auf „Public Read“ stehen müssen?
