11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/sufia/models/jobs/import_url_job.rb', line 11
def run
user = User.find_by_user_key(generic_file.depositor)
Tempfile.open(self.pid) do |f|
f.binmode
uri = URI(generic_file.import_url)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
http.start do
http.request_get(uri.request_uri) do |resp|
resp.read_body do |segment|
f.write(segment)
end
end
end
f.rewind
Sufia::GenericFile::Actions.create_content(generic_file, f, File.basename(uri.path), 'content', user)
Sufia.queue.push(ContentDepositEventJob.new(generic_file.pid, generic_file.depositor))
message = "The file (#{File.basename(uri.path)}) was successfully imported."
job_user.send_message(user, message, 'File Import')
end
rescue => error
job_user.send_message(user, error.message, 'File Import Error')
end
|