Browse Source

Add response content disposition to download with the correct filenames and extension

pull/2653/head
Manny Dinssa 2 years ago
parent
commit
14827e8281
  1. 6
      app/services/bulk_upload/downloader.rb
  2. 9
      app/services/storage/s3_service.rb

6
app/services/bulk_upload/downloader.rb

@ -16,7 +16,11 @@ class BulkUpload::Downloader
end
def presigned_url
s3_storage_service.get_presigned_url(bulk_upload.identifier, 60)
s3_storage_service.get_presigned_url(
bulk_upload.identifier,
60,
response_content_disposition: "attachment; filename=#{bulk_upload.filename}.csv"
)
end
private

9
app/services/storage/s3_service.rb

@ -20,10 +20,15 @@ module Storage
response.key_count == 1
end
def get_presigned_url(file_name, duration)
def get_presigned_url(file_name, duration, response_content_disposition: nil)
Aws::S3::Presigner
.new({ client: @client })
.presigned_url(:get_object, bucket: @configuration.bucket_name, key: file_name, expires_in: duration)
.presigned_url(
:get_object,
bucket: @configuration.bucket_name,
key: file_name,
expires_in: duration,
response_content_disposition: response_content_disposition,)
end
def get_file_io(file_name)

Loading…
Cancel
Save