Hilfe bei der Migration einer Kategorie von einer Instanz zur anderen ohne Administrator auf der Quellinstanz

Unser Team hat als Gast auf einer anderen Discourse-Instanz gearbeitet. Wir richten unsere eigene Discourse-Instanz ein und möchten unsere Kategorien von der bestehenden Instanz auf die neue Instanz migrieren. Wir haben keinen Administratorzugriff auf den bestehenden Server, aber die Administratoren sind bereit, einen Kategorieexport für uns durchzuführen. Dieser Export enthält jedoch keine Anhänge oder Bilder. Wir haben API-Zugriff auf die bestehende Instanz, aber nur auf unsere Kategorien. Wir haben Administratorzugriff auf die neue Instanz.

Ist es möglich, Anhänge und Bilder nur über die API für die bestehende Instanz zu migrieren?

Ich habe mir das exportierte JSON angesehen und die Dateinamen der Anhänge sind unterschiedliche, zufällige Zeichenfolgen als die, die im Browser angezeigt werden, was das Reverse-Engineering der API zum Herunterladen von Anhängen und Bildern nicht ganz einfach macht. Selbst wenn wir alle Anhänge von der bestehenden Instanz herunterladen könnten, bin ich mir nicht sicher, wie ich sie zur neuen Instanz hinzufügen soll. Dieser Beitrag lässt mich glauben, dass es so einfach ist, sie an diesen Ort zu legen, mit der Anforderung, dass die Dateinamen identisch mit denen im exportierten JSON sind, aber das scheint nicht zu funktionieren.

Irgendwelche Ideen?

1 „Gefällt mir“

Können Sie erklären, was Sie damit meinen?

Wenn Sie sich die verarbeiteten Daten für einen JSON-Post-Stream ansehen, erhalten Sie die normalen Anhang-URLs.

4 „Gefällt mir“

Entschuldigung, ich konnte nicht antworten, da ich neu bin und mein Konto gesperrt war.

In der Kategorie „Export JSON“ (mit der oben genannten Methode) sieht der Anhang in einem bestimmten Beitrag wie folgt aus:

![image|505x473](upload://yyWAy3WPpjetoctRNL9hmPvNNwm.jpeg

Im „Cooked JSON“ aus der API hat dasselbe Bild die folgende URL:

https://my.server.com/uploads/default/original/2X/f/f23d29caba9a31b2b63b93f4104d746623703ca2.jpeg

Es scheint keine Beziehung zwischen den Dateinamen zu geben. Angesichts dieser Informationen kann ich die API verwenden, um die Anhänge abzurufen, die nicht im Export enthalten sind. Aber ich bin mir nicht sicher, wie ich sie benennen und wo ich sie auf dem neuen Server platzieren soll.

Sobald das geklärt ist, wäre es möglich, dass die Anhänge auf den gerenderten Themenseiten erscheinen, wenn sie wie vor der Migration geladen werden.

1 „Gefällt mir“

Wenn ich die über die API gekochten Daten ansehe (zum Beispiel diese), sehe ich die vollständigen URLs zu den Bildern.

Aber ich denke, Sie suchen vielleicht nach Folgendem:

2 „Gefällt mir“

Berichte mit einer Lösung zurück, die mit einer Testinstanz funktioniert, die ich noch nicht auf der Produktion getestet habe.

Dies ist für mein zukünftiges Ich, um es an das Team weiterzugeben, das die Migration tatsächlich durchführen wird, oder an jeden anderen, der etwas Ähnliches benötigt.

Anhänge sollten den Langform-Namen erhalten, der über das Python-Skript in Converting short upload URLs to full URLs aus der Kurzform im JSON konvertiert werden kann.

Anhänge sollten in discourse/public/uploads/tombstone/default/original/ platziert werden.

Führen Sie dann uploads:recover_from_tombstone aus, während Sie sich in /var/discourse/ befinden.

3 „Gefällt mir“