class MovieMasher::HttpDownloadService
downloads assets via http
Public Instance Methods
download(options)
click to toggle source
# File service/remote/http_download.rb, line 6 def download(options) source = options[:source] cache_url_path = options[:path] uri = URI(options[:asset][:input_url]) uri.port = source[:port] if source[:port] parameters = source[:parameters] if parameters.is_a?(Hash) && !parameters.empty? parameters = Marshal.load(Marshal.dump(parameters)) Evaluate.object(parameters, job: options[:job], input: options[:asset]) uri.query = URI.encode_www_form parameters end if source[:user] && source[:pass] req.basic_auth(source[:user], source[:pass]) end Net::HTTP.start(uri.host, uri.port, use_ssl: secure) do |http| request = Net::HTTP::Get.new uri http.request request do |response| unless response.code.to_i == 200 raise(Error::JobInput, "got #{response.code} code from #{uri}") end File.open(cache_url_path, 'wb') do |io| response.read_body do |chunk| io.write chunk end end mime_type = response['content-type'] Info.set(cache_url_path, 'Content-Type', mime_type) if mime_type end end end
secure()
click to toggle source
# File service/remote/http_download.rb, line 38 def secure false end