class Hydra::Derivatives::PersistExternalFileOutputFileService

Public Class Methods

call(output, directives) click to toggle source

Persists a new file at specified location that points to external content @param [Hash] output information about the external derivative file @option output [String] url the location of the external content @param [Hash] directives directions which can be used to determine where to persist to. @option directives [String] url This can determine the path of the object.

# File lib/hydra/derivatives/services/persist_external_file_output_file_service.rb, line 10
def self.call(output, directives)
  external_file = ActiveFedora::File.new(directives[:url])
  # TODO: Replace the following two lines with the shorter call to #external_url once active_fedora/pull/1234 is merged
  external_file.content = ''
  external_file.mime_type = "message/external-body; access-type=URL; URL=\"#{output[:url]}\""
  # external_file.external_url = output[:url]
  external_file.original_name = Addressable::URI.parse(output[:url]).path.split('/').last
  external_file.save
end