Skip to content
Snippets Groups Projects

Add size and formats for download

Merged Gyan Gupta requested to merge feature/435-add-size-and-formats-for-download into develop
Files
15
@@ -87,7 +87,7 @@ module Hyrax
parent_object = file_set.parent_object
siblings = parent_object.file_sets
duplicate_record = siblings.select {|fs| fs.title[0].downcase == file_name && fs.id != file_set.id }
duplicate_record = siblings.select {|fs| fs.title[0]&.downcase == file_name && fs.id != file_set.id }
new_title = nil
if duplicate_record.present?
@@ -165,7 +165,8 @@ module Hyrax
s3.init_client
source_object_key = uploaded_file.file.path
target_bucket_name = s3.sanitise_name(file_set.parent_works.first.id)
parent_work = file_set.parent_works.first
target_bucket_name = s3.sanitise_name(parent_work.id)
target_bucket = Aws::S3::Bucket.new(target_bucket_name)
@@ -173,6 +174,8 @@ module Hyrax
s3.move_object(source_object_key, target_bucket_name, file_set.object_key_on_s3, { uploaded_file_path: source_object_key })
update_format_and_size(parent_work, s3)
s3.presigned_url_for_download(target_bucket_name, file_set.object_key_on_s3)
end
@@ -210,6 +213,19 @@ module Hyrax
new_title
end
def update_format_and_size(work, s3service)
return true unless work.present?
bucket_name = s3service.sanitise_name(work.id)
list_of_objects, total_size, list_of_format = s3service.list_all_objects(bucket_name, nil, true)
return true if (work.format == list_of_format && work.files_size == [total_size])
work.files_size = [total_size]
work.format = list_of_format
work.save
end
end
end
end
Loading