From e16aa7b1c5d24ead3cccb5a1c50bf9789dcadbe8 Mon Sep 17 00:00:00 2001 From: evazion Date: Wed, 15 Sep 2021 11:05:45 -0500 Subject: [PATCH] Add script to backfill MediaMetadata. --- lib/tasks/images.rake | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lib/tasks/images.rake b/lib/tasks/images.rake index 1bdcff3c1..1ffed087a 100644 --- a/lib/tasks/images.rake +++ b/lib/tasks/images.rake @@ -34,6 +34,21 @@ namespace :images do end end + task populate_media_metadata: :environment do + sm = StorageManager::Local.new(base_url: "/", base_dir: ENV.fetch("DIR", Rails.root.join("public/data"))) + + MediaMetadata.joins(:media_asset).where(metadata: {}).find_each do |metadata| + asset = metadata.media_asset + file = sm.open(sm.file_path(asset.md5, asset.file_ext, :original)) + media_file = MediaFile.open(file) + + metadata.update!(metadata: media_file.metadata) + puts "metadata[id=#{metadata.id}, md5=#{asset.md5}]: #{media_file.metadata.count}" + rescue StandardError => e + puts "error[id=#{metadata.id}]: #{e}" + end + end + desc "Backup images" task :backup => :environment do CurrentUser.user = User.system