S3-Assets nach Forenumzug defekt

Hallo,

ich musste ein verlassenes Discourse-Forum verschieben. Zum Glück hatten wir mehrere Administratoren, sodass dies möglich war und wir ein Backup erstellen konnten. Wir haben für unsere Assets einen S3-Bucket verwendet, was sich als etwas problematisch erwies. An dieser Stelle möchte ich eine Feature-Anfrage stellen:

Es soll möglich sein, S3-Assets in Backups aufzunehmen

Ich habe festgestellt (ich bin mir nicht sicher, ob dies vor oder nach dem Neubearbeiten der Beiträge der Fall war), dass S3-Asset-URLs in interne URLs umgeschrieben wurden. Daher habe ich alle original und optimized S3-URLs aus der Datenbankdatei extrahiert und sie (mehr oder weniger) manuell heruntergeladen. Nachdem ich sie an den richtigen Ort verschoben hatte, wurden alle fehlenden Bilder angezeigt. … Es wäre großartig, eine automatische Funktion dafür zu haben.

Bisher bin ich auf drei Fehler gestoßen:

  1. Defekte Vorschaubilder, aber vergrößerte Bilder funktionieren
  1. Funktionierende Vorschaubilder, aber kein Hover-Effekt zum Vergrößern der Bilder
  • /t/microlongrange-openhd-edition/379 … Ich kann in meinem ersten Beitrag nur zwei Links setzen
  1. Gravatars funktionieren nicht (möglicherweise nicht direkt damit verbunden):
    -

Bei neuen Beiträgen habe ich keine Probleme festgestellt.

Vielen Dank für dieses großartige Projekt,
Limitless Green

Das klingt nach einer Fehlkonfiguration, nicht nach einem Fehler. Hast du denselben S3-Bucket auf dem neuen Host vor der Wiederherstellung konfiguriert?

Ich habe das Backup wiederhergestellt, das auch die Konfiguration enthält. Danach (und nach Erzwingen von HTTPS) bekomme ich überhaupt keine Bilder mehr aus dem S3-Bucket.

Jetzt habe ich die S3-Konfiguration vollständig entfernt.

Ist das nicht ein vollständiges Überschreiben der Konfiguration?

Mit Ausnahme der S3-Konfiguration, falls diese zuvor über Umgebungsvariablen in app.yml konfiguriert wurde …

Es gibt eine versteckte Einstellung, die genau das bewirkt. Cdck aktiviert sie für Kunden, bei denen bekannt ist, dass sie ihre Hosting-Infrastruktur planen.

Die S3-Konfiguration erfolgt am besten über Umgebungsvariablen, wie in Verwendung von Objektspeicher für Uploads (S3 & Clones) beschrieben.

Nach der Wiederherstellung habe ich die Konfigurationen in s3 upload bucket und s3 cdn url gesetzt.
Ich habe keinen Zugriff auf die app.yml (des alten Servers).

Oh, toll! :grinning: Wo?
Die einzige passende Option im Abschnitt backup, die ich gefunden habe, war:
grafik
(diese war aktiviert)

Ich bin mir nicht sicher, ob das klar ist: Ich möchte aktuell kein S3. Und ich musste die Assets von dort beziehen. Niemand weiß, wie lange dieser Server noch laufen wird. :sweat_smile:

Wenn Sie keinen SSH-Zugriff auf den Server haben, können Sie die versteckte Einstellung nicht ändern.

Alles klar. Was sollte in einem Fall wie meinem jetzt unternommen werden?Was kann zu dieser defekten Bildvorschau führen?

Wenn es nicht zu spät ist (das heißt, es gab bereits Aktivitäten im Forum, die du nicht verlieren möchtest) und du über die S3-Anmeldedaten verfügst, würde ich die S3-Daten wahrscheinlich in die app.yml einfügen und die Wiederherstellung erneut ausführen. Von dort aus könntest du dann die versteckte Einstellung vornehmen, ein Backup erstellen und dieses auf einem Server ohne S3 wiederherstellen.

Ich denke jedoch, dass dies nicht der Fall ist. Und es ist auch nicht ganz klar, worin genau die Probleme bestehen, da du dich selbst nicht mehr genau daran erinnerst, was du wann getan hast.

Wenn Dinge fehlen (und du über S3-Anmeldedaten verfügst), könnte ich versuchen, mit einem S3-Tool alle Uploads herunterzuladen und dann die Datenbank so anzupassen, dass sie auf diese Dateien verweist. Dazu bin ich jedoch nicht gut genug, um hier zu erklären, wie man das macht.

Ja, leider habe ich keine S3-Zugangsdaten :frowning:

Ich kann die Schritte reproduzieren:

  1. Installation eines neuen Discourse-Foren mit discourse_docker hinter Traefik
  2. Sicherung des alten Forums (einschließlich einiger alter Assets)
  3. Wiederherstellung der Sicherung auf dem neuen Forum
  4. Erzwingen von HTTPS
  5. Extrahieren der Asset-URLs aus der dump.sql (aus der Sicherung)
  • egrep -o 'discuss-openhdfpv.eu-central-1.linodeobjects.com\\/original\\/1X\\/[0-9a-z_]{0,}\\.[0-9a-zA-Z]{0,}' ./dump.sql \u003e\u003e original.txt
  • egrep -o 'discuss-openhdfpv.eu-central-1.linodeobjects.com\\/optimized\\/1X\\/[0-9a-z_]{0,}\\.[0-9a-zA-Z]{0,}' ./dump.sql \u003e\u003e optimized.txt
  1. Herunterladen der Assets: cat optimized.txt | parallel --gnu \"wget -nc -P ./optimized/1X/ {}\" (gleicher Befehl für original)
  2. Entfernen der S3-Konfigurationen
  3. rake posts:rebake

Ich kann SQL-Befehle in der Datenbank ausführen, wenn ich weiß, wonach ich suchen muss.