Class: ImportUrlJob
Instance Attribute Summary
#pid
Instance Method Summary
collapse
#initialize, #object
Instance Method Details
#copy_remote_file(import_url, f) ⇒ Object
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
# File 'app/jobs/import_url_job.rb', line 27
def copy_remote_file(import_url, 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
uri.path
end
|
#job_user ⇒ Object
47
48
49
|
# File 'app/jobs/import_url_job.rb', line 47
def job_user
User.batchuser
end
|
#queue_name ⇒ Object
7
8
9
|
# File 'app/jobs/import_url_job.rb', line 7
def queue_name
:import_url
end
|
#run ⇒ Object
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'app/jobs/import_url_job.rb', line 11
def run
user = User.find_by_user_key(generic_file.depositor)
Tempfile.open(self.pid) do |f|
path = copy_remote_file(generic_file.import_url, f)
if Sufia::GenericFile::Actor.new(generic_file, user).create_content(f, path, 'content')
message = "The file (#{File.basename(path)}) was successfully imported."
job_user.send_message(user, message, 'File Import')
else
job_user.send_message(user, generic_file.errors.full_messages.join(', '), 'File Import Error')
end
end
end
|