Verwenden Sie Amazon S3 nicht mehr für Uploads

Nach einigen Experimenten habe ich festgestellt, dass einige meiner Beiträge die Bilder nicht anzeigen, selbst bevor ich eine ‘Remap’-Operation durchführe.

Stattdessen wird ein kleines Symbol des Bildes angezeigt. Wenn ich mit der Maus darüber fahre, wird der Bildpfad angezeigt, und das Bild erscheint erst, wenn ich darauf klicke.

Selbst dieses Symbol verschwindet (und an seiner Stelle erscheint ein weißer Bereich bzw. ein Bildplatzhalter), wenn ich über das Menü mit den drei Punkten ‘HTML neu erstellen’ auswähle oder wenn ich im Inneren des Containers eine ‘Rebake’-Operation durchführe.

Ich bitte um eine kurze Anleitung.

1 „Gefällt mir“

Wenn du keine Remap durchgeführt hast und dein S3-Bucket weiterhin funktionsfähig ist, sollte sich nichts im Vergleich zu vorher geändert haben. Haben diese Bilder zuvor funktioniert, bevor du mit diesem Vorhaben begonnen hast?

Theoretisch verlierst du die Verbindung zu diesen Bilddateien nur, wenn du deinen S3-Bucket deaktivierst oder eine Remap fehlerhaft durchführst.

2 „Gefällt mir“

Danke.
Ich habe festgestellt, dass das Bildsymbol den Pfad /bucket/uploads/optimized/folder/… anzeigt (und da es an diesem Pfad kein solches Bild gibt, wird das Bild nicht angezeigt, sondern nur das Symbol).

Wenn ich jedoch auf dieses Bildsymbol klicke, wird das Bild aus dem Ordner ‘Orig’ angezeigt/bereitgestellt, also /bucket/uploads/original/…

Ich verstehe nicht, wie ein einzelnes Bild zwei verschiedene Pfade gespeichert haben kann?!!

Wie auch immer, jetzt lautet das Problem: Wie finde ich die Beiträge, die Bilder mit einem falschen Pfad (unter ‘optimized’) verknüpft haben? Damit ich deren Adressen auf den korrekten Pfad unter ‘Original’ korrigieren/remappen kann.

1 „Gefällt mir“

Vielen Dank @nathank, @Pravi, @itsbhanusharma. Da ich verschiedene Probleme/Szenarien verwechselt habe, befinde ich mich derzeit in folgender Situation:

  1. Bei einigen meiner Beiträge werden die hochgeladenen Bilder nicht angezeigt. Stattdessen wird entweder ein kleines Symbol mit einer falschen Bucket-URL/Adresse angezeigt, wenn ich mit der Maus darüberfahre. Oder einige zeigen das richtige Bild und den korrekten Bucket-Pfad NUR, wenn ich auf diese kleinen Symbole klicke. Bei anderen Beiträgen werden die Bilder gar nicht angezeigt, es ist nur ein weißer leerer Bereich zu sehen.

Als ich eine Remap-Operation durchführte (remap wrongbucketurl correctbucketurl), stellte ich bei einem ausgewählten Beitrag fest, dass das kleine Symbol zwar einmal durch das korrekte Bild ersetzt wurde (ich war glücklich), aber am folgenden Tag das Bild vollständig verschwunden war, ohne dass auch nur ein Symbol angezeigt wurde. Stattdessen erschien wieder ein weißer Bereich. Daher musste ich meine Website auf den Vortag wiederherstellen.

  1. Als ich diesen Befehl ausführte, war das Ergebnis folgendes:
# rake posts:missing_uploads
Suche nach fehlenden Uploads auf: default

19 Post-Uploads fehlen.

19 Uploads fehlen.
6 von 7792 Beiträgen sind betroffen.
1 „Gefällt mir“

Sie haben noch nicht auf den lokalen Speicher migriert. Ich habe Ihre Seite überprüft, und die S3-URL ist immer noch vorhanden.

Der Befehl sieht ungefähr so aus:

./launcher enter app
  discourse remap //bxyzbucket1.s3.dualstack.ap-south-1.amazonaws.com/uploads/ /uploads/default/
  discourse remap //bhdisco.s3.dualstack.ap-south-1.amazonaws.com/uploads/ /uploads/default/
  rake posts:rebake
3 „Gefällt mir“

Ich habe diese Vorgehensweise bereits ein paar Dutzend Mal in verschiedenen Varianten ausprobiert, aber es funktioniert immer noch nicht.

Unsere Bilder werden nicht über S3 angezeigt, da die Geschäftsführung entschieden hat, keinen S3-Bucket mit öffentlichem Zugriff zu verwenden. Wir müssen also wieder auf lokale Speicherung umstellen.

Zunächst habe ich die defekten Links untersucht und daraus die Werte ermittelt, die ich beim Remapping verwenden sollte (oder so dachte ich). Dadurch funktionieren jetzt einige Bilder. Die meisten – ich schätze über 90 % – funktionieren jedoch nicht. Im Gegensatz zu defekten S3-Links, bei denen man sie zumindest untersuchen kann, um herauszufinden, was schiefgelaufen ist, erhalte ich hier nur Folgendes:

link

Weiß jemand, was dafür verantwortlich sein könnte, dass diese Bilder nicht geladen werden? Ich stecke seit Tagen in dieser Sache fest. Es ist für mich unfassbar, dass a) es keine Möglichkeit gibt, zurück zu migrieren, und b) jemand (nicht ich) uns migriert hat, obwohl es keine Möglichkeit gibt, zurück zu migrieren.

Um es klarzustellen: Ich habe den oben von @nathank beschriebenen Prozess befolgt. Ich habe es viele Male versucht, meist mit leichten Abweichungen bei den Pfaden im Remapping-Schritt, da mir nicht klar ist, ob diese Anweisungen universell gültig sind oder davon abhängen, wie Ihr Verzeichnis aufgebaut ist (bei uns gibt es eine Reihe von Unterverzeichnissen, die erfolgreich von S3 über den S3-Sync-Schritt kopiert wurden).

Ich würde mich wirklich über Hilfe freuen, da ich kurz davor bin, die Haare zu raufen.

Ich denke, das, was du tun möchtest, ist, die versteckte Option include_s3_uploads_in_backups zu aktivieren und ein Backup zu erstellen, das du dann wiederherstellst (ich würde das zunächst auf einem neuen Testserver ausprobieren). So verfährt man, wenn ein CDCK-Kunde sein Abonnement kündigt, und diese Backups lassen sich problemlos auf einer neuen selbst gehosteten Seite wiederherstellen.

6 „Gefällt mir“

Hi Jay – danke für die Antwort. Verzeih bitte meine Unwissenheit hier, aber wie kann ich das aktivieren?

1 „Gefällt mir“

Entschuldigung. Etwas wie

./launcher enter app
rails c
SiteSettings.include_s3_uploads_in_backups=true
exit
exit
2 „Gefällt mir“

Ich habe es versucht, aber ich habe Folgendes erhalten:

NoMethodError: undefinierte Methode include_s3_uploads_in_backups=' für SiteSettings:Module von (pry):1:in pry

Dann wurde mir klar, dass ich vielleicht S3-Uploads wieder aktivieren musste, da ich sie deaktiviert hatte, aber ich erhielt immer noch denselben Fehler.

Ach ja, wir verwenden zwei Container, und ich führe dies im web_only-Container aus. Der Rails-Befehl wird im data-Container nicht gefunden, also nehme ich an, dass dies der richtige Ansatz ist.

1 „Gefällt mir“

Es scheint, dass der Befehl hätte lauten müssen:

SiteSetting.include_s3_uploads_in_backups=true

Ich habe das ausgeführt und dann ein neues Backup erstellt. Nach der Wiederherstellung aus diesem Backup gibt es keine Änderung – die meisten Bilder zeigen weiterhin das oben gezeigte defekte Symbol. Ich habe auch beide Container neu erstellt, aber das hat nichts gebracht.

Wenn ich das Backup-Zip herunterlade und untersuche, sind alle diese Dateien definitiv enthalten, und nach der Wiederherstellung sind sie im Dateisystem sichtbar. Aber Discourse weigert sich einfach, sie zu erkennen und anzuzeigen.

1 „Gefällt mir“

Nur zur Information: Ich habe das Problem schließlich gelöst. Ich habe komplett neu gestartet (d. h. von einem Snapshot meiner Instanz) und bin mir ziemlich sicher, dass der letztendlich funktionierende Ablauf folgender war:

  • Nutzung der Rails-Konsole zum Ausführen von SiteSetting.include_s3_uploads_in_backups=true
  • Erstellen eines neuen Backups
  • Wiederherstellung aus diesem Backup
  • Nutzung von discourse remap, um Verweise auf meine verschiedenen S3-Dateistandorte auf einen lokalen Standort zu aktualisieren
  • Neubearbeitung der Beiträge und erneutes Erstellen beider Docker-Container

Danke an @pfaffman, der mich in die richtige Richtung gelenkt hat.

EDIT

Ich sollte das hier noch erwähnen. Nach meinem vorherigen Beitrag habe ich festgestellt, dass sechs unserer Themen immer noch defekte Bilder haben (obwohl die überwiegende Mehrheit nun in Ordnung ist).

Es handelt sich um unsere sechs ältesten Beiträge, und alle ursprünglichen Bilder hatten eine andere S3-URL als alle anderen. Das ist offensichtlich kein Zufall. Also habe ich überprüft, ob sich alle diese Dateien im Verzeichnis uploads/default/original/1X befinden – und das tun sie alle. Anschließend habe ich einen Remap-Befehl mit dieser einzigartigen S3-URL ausgeführt, und dabei wurden scheinbar die richtige Anzahl von Beiträgen bearbeitet. Danach habe ich die Neubearbeitung und das erneute Erstellen der Container durchgeführt, aber diese Themen sind immer noch defekt. Hat jemand eine Idee, warum eine kleine Anzahl auf diese Weise fehlschlägt?

7 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.