Class: IngestLocalFileJob
- Inherits:
-
Object
- Object
- IngestLocalFileJob
- Defined in:
- app/jobs/ingest_local_file_job.rb
Instance Attribute Summary collapse
-
#directory ⇒ Object
Returns the value of attribute directory.
-
#filename ⇒ Object
Returns the value of attribute filename.
-
#generic_file_id ⇒ Object
Returns the value of attribute generic_file_id.
-
#user_key ⇒ Object
Returns the value of attribute user_key.
Instance Method Summary collapse
-
#initialize(generic_file_id, directory, filename, user_key) ⇒ IngestLocalFileJob
constructor
A new instance of IngestLocalFileJob.
- #queue_name ⇒ Object
- #run ⇒ Object
Constructor Details
#initialize(generic_file_id, directory, filename, user_key) ⇒ IngestLocalFileJob
Returns a new instance of IngestLocalFileJob.
8 9 10 11 12 13 |
# File 'app/jobs/ingest_local_file_job.rb', line 8 def initialize(generic_file_id, directory, filename, user_key) self.generic_file_id = generic_file_id self.directory = directory self.filename = filename self.user_key = user_key end |
Instance Attribute Details
#directory ⇒ Object
Returns the value of attribute directory.
6 7 8 |
# File 'app/jobs/ingest_local_file_job.rb', line 6 def directory @directory end |
#filename ⇒ Object
Returns the value of attribute filename.
6 7 8 |
# File 'app/jobs/ingest_local_file_job.rb', line 6 def filename @filename end |
#generic_file_id ⇒ Object
Returns the value of attribute generic_file_id.
6 7 8 |
# File 'app/jobs/ingest_local_file_job.rb', line 6 def generic_file_id @generic_file_id end |
#user_key ⇒ Object
Returns the value of attribute user_key.
6 7 8 |
# File 'app/jobs/ingest_local_file_job.rb', line 6 def user_key @user_key end |
Instance Method Details
#queue_name ⇒ Object
2 3 4 |
# File 'app/jobs/ingest_local_file_job.rb', line 2 def queue_name :ingest end |
#run ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'app/jobs/ingest_local_file_job.rb', line 15 def run filedata = File.new( File.join(directory, filename) ) generic_file = GenericFile.find(generic_file_id) user = User.find_by_user_key(user_key) raise "Unable to find user for #{user_key}" unless user # virus check virus_stat = Sufia::GenericFile::Actions.virus_check(filedata) raise "Virus checking did not pass for #{File.basename(filedata.path)} status = #{virus_stat}" unless virus_stat == 0 generic_file.label = File.basename(filename) generic_file.add_file(File.open(File.join(directory, filename)), 'content', generic_file.label) generic_file.record_version_committer(user) generic_file.save! #Sufia.queue.push(UnzipJob.new(generic_file.pid)) if generic_file.content.mimeType == 'application/zip' Sufia.queue.push(ContentDepositEventJob.new(generic_file.pid, user_key)) FileUtils.rm([File.join(directory, filename)]) end |