アップロード移行の問題を解決したいと思い続けていましたが、ついにLLMの助けを借りて実現することができました。興味のある方のために、私のメモを共有します!Jayさんの上記の投稿には、着手するために必要な特別なヒントが含まれており、感謝しています。
私の最初の試みは、Jayさんが予測した通り、まさにその通りに機能しました。移行元のサイト上の画像へのURLのリストを作成し、それを新しいサイトの投稿に貼り付けると、それらがダウンロードされます。これには、Download remote images to local(リモート画像をローカルにダウンロード)が有効になっている必要があります。
LLMがそのためのスクリプトを作成してくれたので、将来同じ問題に直面する人のためにここで共有します。
概要
これをRailsコンソールで実行してください:
topic = Topic.find(=TOPIC_ID=)
posts = Post.where(topic_id: topic.id)
urls = []
posts.each do |p|
UploadReference.where(target: p).each do |ref|
urls << "=SOURCE_URL=#{ref.upload.url}"
end
end
puts urls.uniq.join("\n")
puts "\nTotal: #{urls.uniq.count} upload(s)"
カテゴリ全体を移動する場合? 最初の2行を以下に置き換えてください:
topic_ids = Topic.where(category_id: =TOPIC_ID=).pluck(:id) posts = Post.where(topic_id: topic_ids)この場合、=TOPIC_ID= はカテゴリIDです。管理画面 → カテゴリのURLの末尾で見つけることができます。
しかし、私の場合、それだけでは十分ではありませんでした。なぜなら、PDFファイルは自動的にローカルにダウンロードされないからです。
そこで、LLMにアップロードを移行するためのPythonスクリプトを書いてもらいました。かなりうまく動作したので、こちらも共有したいと思います。試してみたい方やフィードバックがある方は、こちらのリポジトリをご覧ください:tobias/discourse-upload-migrator - Digitally Sovereign Forgejo: Digitally Sovereign, for the win!