Liebe Community,
nachdem ich das Forum nach bestem Wissen und Gewissen durchsucht habe, ohne eine Lösung zu finden, wende ich mich mit einer ungewöhnlichen Situation an den Support, die nach einem kürzlichen Wechsel des DigitalOcean-Rechenzentrums aufgetreten ist.
Wir hatten alle unsere Uploads in einem DigitalOcean Spaces Bucket im Rechenzentrum ams3 gespeichert. Nach zwei schweren Hardware-Problemen und den daraus resultierenden Dienstunterbrechungen innerhalb von etwas mehr als einem Monat haben wir uns letztes Wochenende entschlossen, alle unsere Dateien in das Rechenzentrum fra1 zu verschieben.
Hier sind die Schritte, die ich befolgt habe:
- Als Vorbereitung auf den Transfer habe ich alle Dateien, die wir in ams3 hatten (die drei klassischen Verzeichnisse: originals, optimized und tombstone), mit s3cmd in den neuen Bucket in fra1 hochgeladen.
- Ich bin in die Forumseinstellungen gegangen und habe den neuen Endpunkt für Anhänge, cdnl und den Sicherungs-Bucket eingestellt.
- Ich habe eine vollständige Neubearbeitung aller Beiträge (full post rebake) gestartet, in der Erwartung, dass damit alle Probleme auf einmal behoben werden.
Leider war das nicht der Fall. Die meisten Anhänge wurden korrekt „überführt“, aber einige hundert nicht. Es ist mir nicht klar, was passiert ist, aber diese fehlenden Anhänge wurden in das tombstone-Verzeichnis verschoben.
Ich dachte, dass die Ausführung des Rake-Tasks rake uploads:recover_from_tombstone das Problem beheben würde, aber nein. Die Dateien werden zwar erkannt, aber am Ende des Tasks werden keine Anhänge wiederhergestellt; Bilder sind nach wie vor in den Beiträgen nicht sichtbar.
Ich habe mich etwas tiefer in die Materie eingearbeitet und festgestellt, dass die Ausführung von UploadRecovery.new(dry_run: true).recover (gefunden durch Stöbern im Meta-Bereich) in der Rails-Konsole wertvolle Informationen liefert, wie z. B. die URL des Beitrags sowie die kurze oder lange URL des problematischen Bildes.
Für die in Kurzform zurückgegebenen URLs habe ich ein kleines Python-Skript geschrieben, um den kurzen Upload-Dateinamen in die Langform zu „übersetzen“, damit ich prüfen konnte, ob die Datei im Bucket vorhanden ist.
Ich habe es getan und ich kann bestätigen, dass alle fehlenden Dateien vorhanden sind, sowohl im neuen als auch im alten Bucket. Ein Teil der fehlenden Uploads befand sich erwartungsgemäß im tombstone-Verzeichnis, aber einige andere befinden sich seltsamerweise immer noch im original-Verzeichnis. Die Dateien sind nicht beschädigt. Wenn ich über die URL darauf zugreife, öffnen sie sich in beiden Rechenzentren korrekt, und wenn ich sie lokal auf meinem Linux-Rechner speichere, kann ich sie ohne Fehler öffnen.
Irgendwie scheitert der Upload-Wiederherstellungsprozess daran, diese Dateien zu erfassen und zu beheben, was immer auch in der Datenbank schiefgelaufen ist. ![]()
Meine Fragen sind also:
- Gibt es eine Möglichkeit zu verstehen, warum der Rake-Task trotz der Anwesenheit der Upload-Dateien in
tombstone(oderoriginal) scheitert, sie wiederherzustellen? - Was wäre die richtige Abfolge von Schritten, um sicherzustellen, dass im Falle eines Bucket-Wechsels oder sogar beim Übergang von DO zu einer anderen AWS-kompatiblen Umgebung alle Anhänge korrekt verschoben und für den Wechsel vorbereitet werden? Allgemeiner gefragt: Was sollte man in einem solchen Fall Schritt für Schritt tun? Offensichtlich reicht eine einfache Neubearbeitung (rebake) nicht aus.

- Was bewirkt der Task
posts:invalidate_broken_images? Was bedeutet invalidate (ungültig machen) genau?
Vielen Dank im Voraus. Ich kämpfe seit einer Woche damit und muss das unbedingt abschließen, sonst werde ich noch verrückt
![]()
Zur Info: Der Vorschlag, alle 800+ Anhänge manuell neu zu laden, wird nicht als gültige Antwort akzeptiert. Es muss einen algorithmischen Grund geben… ![]()