diff --git a/app/models/amazon_copy.rb b/app/models/amazon_copy.rb index 0d72ef3..29c004b 100644 --- a/app/models/amazon_copy.rb +++ b/app/models/amazon_copy.rb @@ -10,13 +10,33 @@ class AmazonCopy puts "File #{videolisting.videocode} downloaded." s3 = AWS::S3.new - obj = s3.buckets['digitalmarketingvideos'].objects["bvideos/#{videolisting.videocode}.mp4"] + obj = s3.buckets[ENV['VIDEO_BUCKET']].objects["bvideos/#{videolisting.videocode}.mp4"] obj.write(file) puts "File #{videolisting.videocode} uploaded." + ensure file.close file.unlink end + + file = Tempfile.new ["video_",".jpg"], "#{Rails.root}/tmp" + begin + file.write HTTParty.get(videolisting.get_preview_url).parsed_response.force_encoding("utf-8") + file.flush + puts "File #{videolisting.videocode} preview downloaded." + + s3 = AWS::S3.new + obj = s3.buckets[ENV['VIDEO_BUCKET']].objects["bvideos_previews/#{videolisting.videocode}.jpg"] + obj.write(file) + puts "File #{videolisting.videocode} preview uploaded." + + ensure + file.close + file.unlink + end + videolisting.on_s3 = true + videolisting.save + end handle_asynchronously :download_video end \ No newline at end of file diff --git a/app/models/videolisting.rb b/app/models/videolisting.rb index 5ac6601..19b3d75 100644 --- a/app/models/videolisting.rb +++ b/app/models/videolisting.rb @@ -9,11 +9,19 @@ class Videolisting < ActiveRecord::Base after_initialize :set_defaults def get_video_url - "http://video2.bettervideo.com/video/pro/MP4640x360/720.#{videocode}.mp4" + if on_s3 + "http://s3.amazonaws.com/#{ENV['VIDEO_BUCKET']}/bvideos/#{videocode}.mp4" + else + "http://video2.bettervideo.com/video/pro/MP4640x360/720.#{videocode}.mp4" + end end def get_preview_url - "http://video2.bettervideo.com/video/pro/jpg640x360/720.#{videocode}.jpg" + if on_s3 + "http://s3.amazonaws.com/#{ENV['VIDEO_BUCKET']}/bvideos_preview/#{videocode}.jpg" + else + "http://video2.bettervideo.com/video/pro/jpg640x360/720.#{videocode}.jpg" + end end def asseturls_array diff --git a/app/views/videolistings/show.html.erb b/app/views/videolistings/show.html.erb index 90a3fd3..d926394 100644 --- a/app/views/videolistings/show.html.erb +++ b/app/views/videolistings/show.html.erb @@ -25,7 +25,7 @@
diff --git a/db/migrate/20140529180650_add_on_s3_to_videolisting.rb b/db/migrate/20140529180650_add_on_s3_to_videolisting.rb new file mode 100644 index 0000000..9d1f3ec --- /dev/null +++ b/db/migrate/20140529180650_add_on_s3_to_videolisting.rb @@ -0,0 +1,5 @@ +class AddOnS3ToVideolisting < ActiveRecord::Migration + def change + add_column :videolistings, :on_s3, :boolean, default: nil + end +end diff --git a/db/schema.rb b/db/schema.rb index 9db59ab..f7d7242 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20140505153412) do +ActiveRecord::Schema.define(version: 20140529180650) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -113,6 +113,7 @@ ActiveRecord::Schema.define(version: 20140505153412) do t.integer "campaign_id" t.string "toneofvideo" t.boolean "published" + t.boolean "on_s3" end end