ソースインスタンスで管理者権限なしでカテゴリをあるインスタンスから別のインスタンスに移行するのを手伝ってください

当社のチームは、別のDiscourseインスタンスでゲストとして運用してきました。独自のDiscourseインスタンスを立ち上げ、既存のインスタンスから新しいインスタンスにカテゴリを移行したいと考えています。既存のサーバーへの管理者アクセス権はありませんが、管理者はカテゴリのエクスポートを行ってくれるとのことです。ただし、このエクスポートには添付ファイルや画像は含まれていません。既存のインスタンスへのAPIアクセスはありますが、それは当社のカテゴリのみに限られます。新しいインスタンスには管理者アクセス権があります。

既存のインスタンスのAPIのみを使用して、添付ファイルや画像を移行することは可能でしょうか?

エクスポートされたJSONを見ていましたが、添付ファイルのファイル名は、ブラウザで表示されるものとは異なるランダムな文字列になっており、APIをリバースエンジニアリングして添付ファイルや画像をダウンロードするのはそれほど簡単ではありません。既存のインスタンスからすべての添付ファイルをダウンロードできたとしても、それらを新しいインスタンスに追加する方法がわかりません。この投稿を見ると、エクスポートされたJSONと同じファイル名であるという要件で、その場所にドロップするだけで簡単なように思えますが、うまくいきません。

何かアイデアはありますか?

「いいね!」 1

これはどういう意味か説明していただけますか?

JSON投稿ストリームの調理済みデータを見ると、通常の添付ファイルのURLを取得できます。

「いいね!」 4

申し訳ありません。新規アカウントのため、保留となっており返信できませんでした。

カテゴリのエクスポートJSON(上記リンクの方法を使用)では、特定の投稿内の添付ファイルは以下のようになっています。

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

APIからの調理済みJSONでは、同じ画像は次のURLになっています。

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

ファイル名に明確な関連性が見られません。この情報があれば、エクスポートに含まれていない添付ファイルをAPIで取得できます。しかし、どのようなファイル名を付け、新しいサーバーのどこに配置すればよいかわかりません。

それが解決した後、移行前のように、レンダリングされたトピックページに添付ファイルが表示されるようにすることは可能でしょうか。

「いいね!」 1

API経由で(例えばこちらのように)調理済みのものを見ると、画像の完全なURLが表示されます。

しかし、お探しなのはおそらくこちらでしょう。

「いいね!」 2

テストインスタンスで動作するソリューションを報告します。これは本番環境ではまだ試していません。

これは、将来の自分や、実際の移行を行うチーム、または同様のものを必要とする他の誰かに引き継ぐためのものです。

添付ファイルには長い形式の名前を付ける必要があります。これは、Converting short upload URLs to full URLs の Python スクリプトを使用して JSON から変換できます。

添付ファイルは discourse/public/uploads/tombstone/default/original/ に配置する必要があります。

その後、/var/discourse/ で uploads:recover_from_tombstone を実行します。

「いいね!」 3