10
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
|
# File 'app/jobs/ingest_file_job.rb', line 10
def perform(file_set, filepath, user, opts = {})
relation = opts.fetch(:relation, :original_file).to_sym
local_file = Hydra::Derivatives::IoDecorator.new(File.open(filepath, "rb"))
local_file.mime_type = opts.fetch(:mime_type, nil)
local_file.original_name = opts.fetch(:filename, File.basename(filepath))
Hydra::Works::AddFileToFileSet.call(file_set,
local_file,
relation,
versioning: false)
file_set.save!
repository_file = file_set.send(relation)
Hyrax::VersioningService.create(repository_file, user)
CharacterizeJob.perform_later(file_set, repository_file.id, filepath)
end
|