Defekte Bilder und ihre S3-URLs

Nach dem letzten Update auf 2.5.0.beta7 sind alle meine Bilder im Forum defekt.
image

Das Avatar-Bild wurde ebenfalls durch das Standardbild ersetzt. Dies sind meine Vorschläge auf dem Dashboard:

Meine Staff-Beiträge für Assets:

Ein solches Bild: /original/2X/4/4064b1cc32199de63ad2fa2b5bd2a0c5b6872c6d.png

Mein S3 enthält jedoch kein solches Bild: (Warum ist das passiert?)

Mein Favicon und andere Logos fehlen: /original/1X/b32666bfe0e0eac40aacb178c7430c9f7873b397.png

Mein S3 enthält jedoch nur diese Dateien:

Beachten Sie, dass die URL falsch ist und es keinen 1X-Ordner innerhalb des original-Ordners gibt.

Ich habe versucht, das Tutorial aus diesem Beitrag zu befolgen:

Aber das hat nichts gefixt.

Darf ich darauf hinweisen, dass dieses Bild nicht in deinem Bucket liegt? Es ist doch 4061…41.png? :thinking:
Ist es lokal vorhanden?

Entschuldigung, falsche Wortwahl. Ich meinte, dass ich bemerkt habe, dass es nicht im S3-Bucket ist, keines von ihnen.

Wie kann ich es lokal überprüfen?

Ah, das ergibt tatsächlich mehr Sinn :sweat_smile:
Du kannst es lokal mit einem beliebigen SSH-Client überprüfen, den du bevorzugst. Je nach deiner Einrichtung sollten die Dateien in einem Pfad wie /var/discourse/shared/standalone/uploads/default/original/2X/ liegen.
Du könntest also ls -R /var/discourse/shared/standalone/uploads/ | grep 4064b ausführen, um die 4064b…d.png zu finden.

2 „Gefällt mir“

Ich spreche von derselben Discourse-Instanz wie @masterakay.

Wir sind vor über zwei Jahren auf S3 umgestellt; keine der Dateien im lokalen Upload-Verzeichnis ist neuer als 2018.

Meines Wissens werden Bilder im Ordner „original

2 „Gefällt mir“

@sam @codinghorror Es tut mir sehr leid, dass ich euch hiermit belaste, aber es ist ziemlich dringend. Wir sind Studierende und stehen angesichts des Drucks der Hochschule, die Bilder zu beheben, ziemlich hilflos da.

Ich sehe das auch, und es hat gerade nach einem neueren Update begonnen.

https://discourse.sesp.northwestern.edu

1 „Gefällt mir“

Wie ist dein S3-Setup konfiguriert? Hast du Werte in app.yml festgelegt oder nur in der Admin-Oberfläche? Es scheint, als wäre etwas bei DISCOURSE_S3_BUCKET oder DISCOURSE_S3_BACKUP_BUCKET unerwartet.

4 „Gefällt mir“

Ja, wie ich bereits erklärt habe, war alles in Ordnung, bis zum letzten Update. Wir haben alle Schritte befolgt.
Insbesondere haben wir so etwas wie Folgendes getan:

Was diese Werte betrifft, so kann ich keine entsprechende Variable in app.yml finden. Das war zuvor nicht erforderlich. Hat sich etwas geändert?

Stimmt. Etwas im Code funktioniert möglicherweise nicht richtig, aber wir wissen weder was noch warum. Daher benötigen wir weitere Informationen.

Es gibt zwei verschiedene Möglichkeiten, S3 einzurichten: Sie können die Umgebung in app.yml konfigurieren oder die Werte über die Admin-Oberfläche eingeben. Die Variablen sind in beiden Fällen leicht unterschiedlich benannt.

Das verlinkte Thema beschreibt die Einrichtung über die Admin-Oberfläche. Falls Sie Ihre Seite so eingerichtet haben, könnten Sie uns bitte mitteilen, welche Werte Sie für s3_upload_bucket und s3_backup_bucket angegeben haben?

2 „Gefällt mir“

@schleifer Bei mir genauso. Ich habe an diesen Einstellungen ebenfalls nichts geändert. Ich habe auch überprüft, dass meine AWS-Anmeldedaten funktionieren.

Ah, das erklärt es.

Das Problem trat auf, weil diese Einstellungen nicht denselben Wert haben sollten – suche im Einrichtungsthema nach der Zeile „Brauche ich wirklich separate Buckets für Uploads und Backups?"
Ein Wartungsauftrag wurde auf den Inhalt des Backup-Buckets ausgeführt und beeinflusste die Uploads, da sich ihre Werte überschnitten.

@sam, wir sollten das wahrscheinlich im Code erzwingen, nicht nur in der Dokumentation.

Um deine Seite zu reparieren, gibt es zwei Schritte:

Zuerst musst du das Backup-Präfix ändern – das Hinzufügen von /backups am Ende, wie im Einrichtungsthema beschrieben, reicht aus.

Anschließend verschiebe alle Inhalte im S3-Bucket wieder an den richtigen Ort. Alles im oberen „default“-Ordner sollte wieder auf die oberste Ebene verschoben werden.
Beispielsweise gibt es dort wahrscheinlich einen Ordner „default/originals“, der nach oben verschoben werden muss.

Du musst dafür die AWS-Webkonsole oder ein anderes Tool verwenden, um den Bucket zu durchsuchen.

5 „Gefällt mir“

Alles klar, vielen Dank! Ich werde die Schritte ausprobieren und hierher zurückkommen, falls doch etwas passiert. Hast du eine Idee, warum das plötzlich passiert ist? :sweat_smile:

Hey @schleifer, das ergibt Sinn, und ich habe das Backup-Präfix zum Bucket-Namen hinzugefügt.

Was die bestehenden Uploads betrifft: Alle Uploads befinden sich in /default/ (nicht in Unterordnern). Die Bild-URLs in Beiträgen (und überall sonst) verwenden /original/* oder /optimized/*.

Wenn wir alles im default-Ordner eine Ebene nach oben (ins Root-Verzeichnis) verschieben, wären die Bilder dann in /*.
Und nein, es gibt keine Unterordner innerhalb von defaults, nur Upload-Dateien. Es scheint Dateien mit dem Standard-Dateinamen aus 40 Zeichen Hash sowie einige mit Suffixen wie „_2_10x10

1 „Gefällt mir“

@schleifer, gibt es dazu schon Neuigkeiten?

Das ist… unerwartet. Dann müssen wir eine Menge Dinge von Hand nachbessern.

Die wichtigste Frage wäre: “Gehen neue Uploads an den richtigen Ort?”

Wenn das der Fall ist, kannst du die alten Uploads an einen bekannten Ort verschieben und ihren Datenbankeintrag anpassen. Wie viele Dateien befinden sich in /default/?

3 „Gefällt mir“

Die neuen Uploads funktionieren erfreulicherweise wie erwartet in Unterordnern. Und die Links in den Beiträgen zeigen auf den richtigen Ort.

Es befinden sich >10k Dateien in /default/. Das manuelle Bearbeiten jedes Beitrags scheint sehr aufwendig zu sein. Gibt es eine Möglichkeit, dies zu skripten? Vielleicht mit einem Regex-Ersatz in allen Beiträgen?

Das ist der Plan, ja. Als Nächstes müssen alle AWOL-Dateien an einem bekannten Ort abgelegt werden. Welche Unterverzeichnisse gibt es im Bucket unter /original/? Es sollte /1X/ geben, und es könnten weitere vorhanden sein.

3 „Gefällt mir“

Dies ist die vollständige Ordnerstruktur. Neue Uploads (funktioniert einwandfrei) werden in /original/2X/*/.jpg gespeichert.

/
|---backups
    |---default
        |---(eine Reihe von Sicherungs-.tar.gz-Dateien)
|---default
    |---(10719 hochgeladene Dateien: PDF, Bilder usw.)
|---inventory
    |---1/pesuioforum/{optimized,original}/[DATE]/manifest.{checksum,json}
|---optimized
    |---1X
        |---(2 Dateien)
    |---2X
        |---{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}
            |---(hochgeladene Dateien, die mit dem Zeichen des Ordners oben beginnen) (insgesamt 1055 Dateien)
|---original
    |---2X
        |---(Wie bei optimized/2X, 520 Dateien)
|---tombstone
    |---optimized
        |---1X
            |---(2 Dateien)
    |---original
        |---2X
            |---(Wie bei optimized/2X, 1 Datei)

Als Nächstes müssen alle AWOL-Dateien an einem bekannten Ort abgelegt werden.

Der Ordner /default/ scheint bereits alle Bilder zu enthalten.

1 „Gefällt mir“