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.
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.
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.
Das ist fantastisch und herzlichen Glückwunsch, 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
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.