From 03e2a2ca3b8d9e376c4d8f903d1c343e4993dc1b Mon Sep 17 00:00:00 2001 From: Albert Yi Date: Thu, 12 Apr 2018 10:40:24 -0700 Subject: [PATCH] add rake task for distributing images using storage managers --- app/logical/storage_manager.rb | 2 -- lib/tasks/images.rake | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/logical/storage_manager.rb b/app/logical/storage_manager.rb index a2e5366f1..80e0bdd09 100644 --- a/app/logical/storage_manager.rb +++ b/app/logical/storage_manager.rb @@ -64,8 +64,6 @@ class StorageManager end end - protected - def root_url origin = Addressable::URI.parse(base_url).origin origin = "" if origin == "null" # base_url was relative diff --git a/lib/tasks/images.rake b/lib/tasks/images.rake index f6b3b64fc..eff54a5c7 100644 --- a/lib/tasks/images.rake +++ b/lib/tasks/images.rake @@ -1,4 +1,18 @@ namespace :images do + desc "Distribute posts to all servers via SFTP" + task :distribute, [:min_id, :max_id] => :environment do |t, args| + min_id = args[:min_id] + max_id = args[:max_id] + lsm = StorageManager::Local.new(base_url: "https://danbooru.donmai.us/data", base_dir: "/var/www/danbooru2/shared/public/data", hierarchical: false) + sftpsm = StorageManager::SFTP.new(*Danbooru.config.all_server_hosts, base_url: "https://danbooru.donmai.us/data") + + Post.where("id between ? and ?", min_id, max_id).find_each do |post| + sftpsm.store_file(lsm.open_file(post, :original), post, :original) + sftpsm.store_file(lsm.open_file(post, :large), post, :large) if post.has_large? + sftpsm.store_file(lsm.open_file(post, :preview), post, :preview) if post.has_preview? + end + end + desc "Reset S3 + Storage Class" task :reset_s3, [:min_id, :max_id] => :environment do |t, args| min_id = args[:min_id] # 1