Class: ImportUrlJob
- Inherits:
-
ActiveFedoraIdBasedJob
- Object
- ActiveJob::Base
- ActiveFedoraIdBasedJob
- ImportUrlJob
- Defined in:
- app/jobs/import_url_job.rb
Instance Attribute Summary
Attributes inherited from ActiveFedoraIdBasedJob
Instance Method Summary collapse
Methods inherited from ActiveFedoraIdBasedJob
Instance Method Details
#copy_remote_file(_import_url, f) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'app/jobs/import_url_job.rb', line 24 def copy_remote_file(_import_url, f) f.binmode # download file from url uri = URI(file_set.import_url) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = uri.scheme == 'https' # enable SSL/TLS http.verify_mode = OpenSSL::SSL::VERIFY_NONE mime_type = nil http.start do http.request_get(uri.request_uri) do |resp| mime_type = resp.content_type resp.read_body do |segment| f.write(segment) end end end f.rewind end |
#perform(id) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'app/jobs/import_url_job.rb', line 8 def perform(id) @id = id user = User.find_by_user_key(file_set.depositor) Tempfile.open(id.tr('/', '_')) do |f| copy_remote_file(file_set.import_url, f) # attach downloaded file to generic file stubbed out if CurationConcerns::FileSetActor.new(file_set, user).create_content(f) # send message to user on download success CurationConcerns.config.callback.run(:after_import_url_success, file_set, user) else CurationConcerns.config.callback.run(:after_import_url_failure, file_set, user) end end end |