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