Nachdem ich mir 3 Stunden lang den Kopf an der Wand eingerannt habe, um meine AWS S3-Konfiguration mit Discourse auf einer AWS Lightsail-Instanz zum Laufen zu bringen, bin ich der festen Überzeugung, dass ein einfaches, unkompliziertes Tutorial hierzu willkommen wäre. Es gibt ALLE Arten von Fallstricken, in die man tappen kann. Ich meine, ich habe keine Probleme damit, einen Bucket zu erstellen, der Dateien über die bereitgestellte AWS S3-URL remote abrufen kann, aber sobald man das CDN, den S3-Endpunkt (der laut UX der Einstellungen leer sein kann, aber beim Versuch des Hochladens die interne Meldung „Endpoint can’t be blank“ ausgibt) und einfache Dinge wie die Berechtigungsstufe, die man TATSÄCHLICH benötigt, wenn man ein CDN über Amazons CloudFront verwendet, ins Spiel bringt.
Es ist einfach viel. Ich habe das Internet durchforstet und nichts, was auch nur annähernd existiert, geschweige denn etwas, das mit dem heutigen Discourse aktuell ist, gefunden.
Danke für jeden Hinweis.
Ich denke, mein größtes Hindernis im Moment sind die Berechtigungen, zumindest aus der Sicht, dass Discourse nach Key ID und Key Secret fragt. Ich habe zwar einen Benutzer in IAM dafür, aber in den S3-Bucket-Informationen gibt es NICHTS, was diesen Benutzer mit diesem Bucket in Verbindung zu bringen scheint, daher habe ich keine Ahnung, ob das die Trennung ist. Ehrlich gesagt nutze ich LightSail und AWS seit über 8 Jahren, aber dieser S3-Bereich ist in einer Art Dev-UX-Stil-Verschleierung geschrieben, mit 50 verschiedenen Möglichkeiten, Dinge zu tun. Überhaupt nicht intuitiv.
Hallo Jay. Ja, ich habe mir das schon oft angesehen. Da es aus dem Jahr 2020 stammt, enthält es Einstellungen wie DISCOURSE_S3_REGION, aber der Admin-Bereich hat keine solche Einstellung.
Außerdem … würde ich meine alten Daten erst nach der korrekten Einrichtung von S3 und der Überprüfung, ob es funktioniert, “reken” (migrieren)?
Das ist die Art von Dingen, über die ich spreche. Die Einstellungen in Discourse treffen eine ganze Menge Annahmen darüber, dass ein Benutzer AWS, Shell und Discourse wie ein Entwickler kennt.
Aber Sie zeigen, dass Sie diese Anweisungen nicht befolgen.
Deshalb müssen Sie diesen Anweisungen folgen und es nicht in der UX tun.
Das sind die Anweisungen, denen Sie folgen müssen.
Und verpassen Sie nicht den Teil, den Sie zu der yml hinzufügen, damit die Assets auf S3 hochgeladen werden.
Ich würde es auf einer Testseite tun, damit Sie Ihre Live-Seite nicht ruinieren.
Ja. Fügen Sie die S3-Einstellungen in der yml zu env hinzu, bauen Sie neu, testen Sie dann, ob sie funktionieren, und führen Sie dann die rake-Aufgabe aus. Sie müssen dort festgelegt werden, nicht in der Datenbank. Ich bin mir nicht sicher, warum sie sie nicht vor der UX versteckt haben.
Vielen Dank für diese Links. Der erste Link, den Sie gepostet haben, enthält einen weiteren Link im AWS-Bereich ( Set up file and image uploads to S3 ) aus dem Jahr 2013, sodass ich sofort auf die Anweisung stoße, eine bestimmte X-Bucket-Richtlinie einzufügen (die veraltet zu sein scheint), während das AWS CDN über Cloudfront die Richtlinie bereits durch seine eigene ersetzt hat. Ändern? Beibehalten? Das ist der Mist, den ich meine. Ugggg!
Es sind nicht wirklich die „Lücken füllen“-Einstellungen in app.yml oder die Admin-Einstellungen, die das Problem darstellen. Es ist eher eine Kombination daraus, wie diese Einstellungen mit dem erstellten Bucket oder dem CDN usw. interagieren. Es ist also die Amazon-Seite der Dinge, die etwas Aufklärung benötigt. Ich verstehe, das ist nicht Discourse, aber es wäre für DISCOURSE-Benutzer, die tatsächlich über S3 funktionsfähig werden, sehr hilfreich. Ich hoffe, das ergibt Sinn.
Ich verstehe. Ich habe schon eine Weile keinen AWS-Bucket mehr eingerichtet. Dieser Teil kann komplizierter sein, aber es ist nicht das, was Sie gepostet haben, wie Sie es gemacht haben.
Aber auch das ist ziemlich einfach: Sie fügen die Sachen ein und können dann eventuelle Fehler beheben.
Das ist das einzige Problem, das Sie beschrieben haben.
Wie haben Sie den Bucket eingerichtet? Welche Berechtigungen haben Sie dem Benutzer erteilt? Haben Sie die Schlüssel generiert? Welche Fehler haben Sie erhalten (aber ich dachte, Sie hätten gesagt, dass Sie ein Bild in einen Beitrag eingefügt haben und es funktioniert hat?)