Class: ValkyrieIngestJob
- Inherits:
-
Hyrax::ApplicationJob
- Object
- ApplicationJob
- Hyrax::ApplicationJob
- ValkyrieIngestJob
- Defined in:
- app/jobs/valkyrie_ingest_job.rb
Overview
Ingests a Hyrax::UploadedFile as file member of a Hyrax::FileSet.
The Hyrax::UploadedFile is passed into #perform, and should have a Hyrax::UploadedFile#file_set_uri identifying an existing Hyrax::FileSet.
Instance Method Summary collapse
- #ingest(file:, pcdm_use:) ⇒ void private
- #perform(file, pcdm_use: Hyrax::FileMetadata::Use::ORIGINAL_FILE) ⇒ Object
-
#upload_file(file:, file_set:, pcdm_use:, user: nil) ⇒ Hyrax::FileMetadata
private
The metadata representing the uploaded file.
Instance Method Details
#ingest(file:, pcdm_use:) ⇒ void
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This method returns an undefined value.
25 26 27 28 29 30 31 32 33 34 |
# File 'app/jobs/valkyrie_ingest_job.rb', line 25 def ingest(file:, pcdm_use:) file_set_uri = Valkyrie::ID.new(file.file_set_uri) file_set = Hyrax.query_service.find_by(id: file_set_uri) upload_file( file: file, file_set: file_set, pcdm_use: pcdm_use, user: file.user ) end |
#perform(file, pcdm_use: Hyrax::FileMetadata::Use::ORIGINAL_FILE) ⇒ Object
15 16 17 |
# File 'app/jobs/valkyrie_ingest_job.rb', line 15 def perform(file, pcdm_use: Hyrax::FileMetadata::Use::ORIGINAL_FILE) ingest(file: file, pcdm_use: pcdm_use) end |
#upload_file(file:, file_set:, pcdm_use:, user: nil) ⇒ Hyrax::FileMetadata
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns the metadata representing the uploaded file.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'app/jobs/valkyrie_ingest_job.rb', line 45 def upload_file(file:, file_set:, pcdm_use:, user: nil) carrier_wave_sanitized_file = file.uploader.file # Pull file, since carrierwave files don't respond to a proper IO #read. See # https://github.com/carrierwaveuploader/carrierwave/issues/1959 file_io = carrier_wave_sanitized_file.to_file ::Hyrax::ValkyrieUpload.file( io: file_io, filename: carrier_wave_sanitized_file.original_filename, file_set: file_set, use: pcdm_use, user: user ) end |