Leider hat bei mir nichts zu 100% funktioniert. Was hast du schlussendlich gemacht?
Gibt es einen Hinweis, wie dies in den heutigen 3.x-Versionen funktionieren könnte? Ich habe immer noch eine Reihe von Bildern auf S3, die ich irgendwie zurück auf lokal bekommen muss. Vorschläge sind willkommen. (Der Befehl rake uploads:migrate_from_s3 existiert nicht mehr)
Ich habe alles so eingerichtet, dass es lokal läuft (nur Backups sind auf S3). Ich habe festgestellt, dass viele Beiträge immer noch auf S3 verweisen, mit Links wie:
<img src="//x.amazonaws.com/original/1X/afda2721f64341ca46576020acae7aaee92bd9d3.PNG" width="308" height="206">
was auf
https://xxx.amazonaws.com/original/1X/afda2721f64341ca46576020acae7aaee92bd9d3.PNG
verweist.
Haben Sie Vorschläge zu diesem Thema? Ich bin es wirklich leid, bei jedem Update oder jeder Änderung Probleme zu haben ![]()
Noch nicht gelöst. Es wäre schön, wenn Discourse eine Lösung hätte.
Oh. Wenn es Ihre Website ist und Sie Ihre Sachen auf S3 haben, dann sollten Sie S3 einschalten, die versteckte Einstellung aktivieren, die in Enable hidden setting to include S3 uploads in the backups beschrieben wird, ein Backup erstellen, die Konfiguration auf lokale Bilder ändern und das Backup wiederherstellen können.
Ich würde gerne wissen, ob es jemandem gelungen ist, dies zum Laufen zu bringen.
Es funktioniert für jede Website, die von Discourse.org-Hosting zu Self-Hosting migriert (und diese Einstellung aktiviert hatte, bevor sie ihr Backup erhielten).
Es ist etwas knifflig, da Sie die S3-Einstellungen (in Ihrer YML-Datei) beim Erstellen des Backups eingerichtet haben müssen und sie dann (überall, auch in der Datenbank, falls Sie sie dort eingerichtet haben) wieder ausschalten müssen, bevor Sie die Wiederherstellung durchführen.
Es ist eine sehr logische Methode, aber sie funktioniert nicht für diejenigen, die Cloudflare R2 verwenden. Oder ist dieses Problem nur bei mir. Als ich ein Backup gemacht habe, habe ich auch die versteckte Einstellung aktiviert. Leider sind die Dateien in R2 nicht im Backup enthalten. Hier tritt der Fehler auf: Uploads in cloudflare R2 are not added to the backup: Failed to download ******* because Aws::S3::Errors::Http501Error
Die Dokumentation und Ihre Erfahrung deuten darauf hin, dass R2 nicht unterstützt wird. Daher müssen Sie das Problem auf andere Weise lösen.
Ich dachte, es würde für mich funktionieren, habe aber nicht sehr sorgfältig getestet und es nicht über einen trivialen Rauchtest hinaus verwendet.
Wenn das Backup die Dateien nicht von R2 herunterladen kann, müssen Sie ein anderes Tool verwenden, um die Dateien von R2 abzurufen, sie dann in Ihren neuen Bucket zu übertragen und dann die Datenbank manuell zu aktualisieren (ich glaube, Sie können nach Themen suchen, indem Sie die remap-Rake-Aufgabe verwenden).
Dies ist ein komplexer Prozess, daher müssen Sie sich gut mit R2, S3 und den Uploads von Discourse auskennen. Es wird wahrscheinlich schwierig sein, Ihre genauen Probleme mit genügend Spezifität zu erklären, um eine Lösung in einem Forum zu erhalten.
Ich lade die Dateien manuell herunter und lade sie auf den Server hoch. Für diejenigen, die fragen, wie das geht, können Sie sich mit dem winscp-Programm mit S3-Konten verbinden. Danach können Sie die Dateien einfach auf Ihren Computer importieren. Danach habe ich es lokal hochgeladen und die Themen neu erstellt, es wurden 0 Beiträge angezeigt. Er hat keine Maßnahmen ergriffen. Ich habe es irgendwann geändert und es hat auch nichts gefunden. Vielleicht habe ich einen Punkt übersehen, ich möchte es nicht sagen, ohne es erneut zu testen, vielleicht war es mein Fehler. Wenn ich es noch einmal versuche, werde ich die Ergebnisse schreiben. Danke.
Das Hochladen der Dateien auf Ihren Server ist nur der (einfache) Teil des Problems.
Sie können sich die Uploads ansehen mit
cd /var/discourse
./launcher enter app
rails c
Upload.pluck(:url)
Das zeigt Ihnen die URLs Ihrer Uploads. Dann müssen Sie alle diese Uploads so ändern, dass sie den neuen Pfad zu Ihrem neuen Bucket haben. Sie können versuchen, nach dem Remap-Befehl zu suchen. Ich glaube, er könnte funktionieren.
Ich habe es lokal hochgeladen und die Themen neu erstellt,
Ich bin mir nicht sicher, was das bedeutet.
Ändern Sie die Konfiguration auf lokale Bilder
Können Sie mir sagen, wie ich diesen Teil mache? Meinen Sie damit, die Einstellung „S3-Upload in Backups einschließen“ einfach auf false zu setzen oder etwas anderes?
Konfigurieren Sie einen S3-kompatiblen Objektspeicheranbieter für Uploads beschreibt, wie S3 durch Hinzufügen zu Ihrer app.yml konfiguriert wird. Wenn Sie es nicht auf diese Weise getan haben, dann entfernen Sie alle S3-bezogenen Einstellungen in den Website-Einstellungen und tun Sie es dann auf diese Weise.
Wenn Sie es auf diese Weise getan haben, dann kommentieren Sie diese Einstellungen aus (oder vielleicht nur den use_s3 und den Upload-Bucket).