Einige verlinkte Bilder werden nicht angezeigt/zeigen als defekt

Ich migriere eine große Menge an Inhalten – etwa 15.000 Nachrichtenartikel – über die API nach Discourse. Diese Themen enthalten Links zu Bildern. Die Bilder wurden gerade in den Blob-Speicher hochgeladen und sind öffentlich vollständig zugänglich.

Die meisten Themen zeigen die Bilder korrekt an; sie werden wie erwartet als Hotlinks heruntergeladen und in Discourse hochgeladen. Einige jedoch bleiben entweder auf dem Stadium, wo sie nur als Links im Thema angezeigt werden, oder erscheinen aus irgendeinem Grund als defekte Bilder.

Das heißt:

Bleiben nur als Links:

Werden defekt:

Im defekten Fall sieht das Thema beim Bearbeiten so aus:

Konfiguration:

  • Frische Discourse-Installation nur zum Testen der Migration
  • S3-Speicher für Bilder

Beim einfachen Erstellen von Beiträgen als Benutzer und Hochladen von Bildern gab es keine Probleme. Das Problem tritt anscheinend nur auf, wenn ich Beiträge über die API migriere, also im Bulk-Modus und in rascher Folge (ich verwende den Parameter skip_validations=true). Bisher habe ich maximal 1.000 Themen migriert, bevor ich alles gelöscht und von vorne begonnen habe.

Habt ihr Ideen, was die Ursache sein könnte? Oder Tipps zur Diagnose? Alle Hotlink-Sidekiq-Jobs scheinen wie erwartet geplant und ausgeführt zu werden.

rake posts:rebake hilft nicht.

Was ist mit der Option ‘HTML neu erstellen’ mit dem kleinen Admin-Schlüssel?

Ihre Datei hat eine doppelte Endung – .jpeg.jpg. Stimmt das für alle abgelehnten Dateien?

Wurden Dateien mit doppelter Endung bereits erfolgreich verarbeitet?

Danke, Robert. Das funktioniert bei den ersten paar, die ich ausprobiert habe. Es geht wieder ganz von vorne los, d. h. das direkt verlinkte Bild wird gerendert und anschließend herunter- und wieder hochgeladen.

Ich muss mal schauen, ob sich das automatisieren lässt, obwohl damit nicht die eigentliche Ursache behoben wird, warum sie von vornherein scheitern.

Nein, Bilder mit doppelten Erweiterungen stellen die Minderheit dar und sind nicht die Ursache aller Fehler. Die Option „HTML neu erstellen

Das ist fantastisch und herzlichen Glückwunsch, :partying_face: zum Glück habe ich das von anderen hilfsbereiten Leuten hier gelernt, als ich ähnliche Probleme hatte, und ich freue mich, dass ich es dir weitergeben konnte :sunglasses:

Okay, ich habe alle migrierten Beiträge über die API mit /posts/{num}/rebake repariert. Seltsamerweise funktionierte der Befehl rake posts:rebake im Container nicht.

Nachdem ich den Aufruf der Rebake-API automatisiert hatte, stellte sich heraus, dass die Fehlerrate beim Hochladen von Bildern bei etwa 80 % liegt. Das ist wirklich verrückt.

Am Ende erwies sich das als nicht zuverlässig; es funktionierte für ein paar Beiträge, aber nicht für alle. Ich muss es erneut versuchen, die Bilder hochzuladen. Ich hatte zuvor bereits Probleme damit, dass Anfragen einfach hängen blieben. Ich bin mir jedoch nicht sicher, ob ich bei diesen Anfragen den Parameter skip_validations ausprobiert habe.

In diesem Beitrag gibt es ein paar Vorschläge, die bei der Behebung von defekten Bildern hilfreich sein könnten: Rebake with rails command or rake task doesn't work, but rebuilding HTML does. Why? - #12 by RGJ.