アップロード移行の問題を解決したくて、ずいぶん前からずっと考えていました。そしてついに、AIチャットボットの助けを借りて実現することができました。フォローしてくれている方々のために、私のメモを共有します!Jayの上記の投稿には、私をスタートさせるために必要な特別な要素が含まれており、その点で感謝しています。
私の最初の試みは、Jayが予測した通り完全に機能しました。移動元のサイトにある画像へのURLのリストを作成し、それを新しいサイトの投稿に貼り付けると、それらがダウンロードされます。これには Download remote images to local(リモート画像をローカルにダウンロード)が有効になっている必要があります。
AIチャットボットがそのためのスクリプトを作成してくれたので、今後の旅行者のためにここで共有します。
要約
これを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ファイルも存在するからです。
そこで、チャットボットにアップロードを移行するためのPythonスクリプトを書いてもらいました。かなりうまく動作するので、こちらも喜んで共有します。試してみたい方やフィードバックをいただきたければ、こちらにリポジトリがあります。
また、チャットボットにトピックまたはカテゴリの移動に関するより完全なランブック(実行手順書)を書いてもらい、それを私のDiscourseに公開しています。