app/jobs/fogged/resources/aws_thumbnail_job.rb in fogged-0.0.9 vs app/jobs/fogged/resources/aws_thumbnail_job.rb in fogged-0.0.10
- old
+ new
@@ -1,30 +1,45 @@
+require "open-uri"
+
module Fogged
module Resources
class AWSThumbnailJob < ActiveJob::Base
def perform(resource)
return unless Fogged.minimagick_enabled
step = 100 / Fogged.thumbnail_sizes.size
Fogged.thumbnail_sizes.each_with_index do |size, index|
- Tempfile.open(["thumbnail", ".png"]) do |t|
- MiniMagick::Tool::Convert.new do |c|
- c << resource.url
- c.resize("#{size}")
- c << t.path
- end
+ Tempfile.open(source_from(resource.url), :binmode => true, :encoding => "ascii-8bit") do |source|
+ Tempfile.open(["thumbnail", ".png"]) do |t|
+ source.write(open(resource.url).read)
+ source.flush
- Fogged.resources.files.create(
- :key => resource.send(:fogged_name_for, :thumbnails, index),
- :body => File.read(t.path),
- :public => true,
- :content_type => Mime::PNG.to_s
- )
+ MiniMagick::Tool::Convert.new do |c|
+ c << source.path
+ c.resize(size.to_s)
+ c << t.path
+ end
+
+ Fogged.resources.files.create(
+ :key => resource.send(:fogged_name_for, :thumbnails, index),
+ :body => File.read(t.path),
+ :public => true,
+ :content_type => Mime::PNG.to_s
+ )
+ end
end
resource.increment!(:encoding_progress, step)
end
resource.update!(:encoding_progress => 100)
+ end
+
+ private
+
+ def source_from(url)
+ uri = URI.parse(url)
+ extension = File.extname(uri.path)
+ [File.basename(uri.path, extension), extension]
end
end
end
end