class DefraRuby::Aws::PresignedUrlService

Attributes

bucket[R]
dir[R]
file_name[R]

Public Class Methods

new(bucket, file_name, options) click to toggle source
# File lib/defra_ruby/aws/services/presigned_url_service.rb, line 12
def initialize(bucket, file_name, options)
  @bucket = bucket
  @file_name = file_name
  @dir = options[:s3_directory]
end
run(bucket, file_name, options = {}) click to toggle source
# File lib/defra_ruby/aws/services/presigned_url_service.rb, line 8
def self.run(bucket, file_name, options = {})
  new(bucket, file_name, options).run
end

Public Instance Methods

run() click to toggle source
# File lib/defra_ruby/aws/services/presigned_url_service.rb, line 18
def run
  s3_bucket.object(destination).presigned_url(
    :get,
    expires_in: 20 * 60, # 20 minutes in seconds
    secure: true,
    response_content_type: "text/csv",
    response_content_disposition: "attachment; filename=#{file_name}"
  )
end

Private Instance Methods

destination() click to toggle source
# File lib/defra_ruby/aws/services/presigned_url_service.rb, line 32
def destination
  [*dir, file_name].compact.join("/")
end