class ActiveAdmin::AsyncExporter::Services::AwsS3Service
Attributes
bucket[RW]
file[RW]
object[RW]
s3[RW]
Public Class Methods
new(file)
click to toggle source
# File lib/active_admin/async_exporter/services/aws_s3_service.rb, line 9 def initialize(file) @file = file @s3 = Aws::S3::Resource.new @bucket = s3.bucket(ActiveAdmin::AsyncExporter.config.aws_bucket_name) end
Public Instance Methods
delete()
click to toggle source
# File lib/active_admin/async_exporter/services/aws_s3_service.rb, line 25 def delete bucket.delete_objects({ delete: { objects: [{ key: filename }] } }) end
store()
click to toggle source
# File lib/active_admin/async_exporter/services/aws_s3_service.rb, line 15 def store @object = bucket.object(filename) object.upload_file(Pathname.new(file[:path]), { acl: 'public-read' }) self end
url()
click to toggle source
# File lib/active_admin/async_exporter/services/aws_s3_service.rb, line 21 def url object.public_url.to_s end
Private Instance Methods
bucket_folder()
click to toggle source
# File lib/active_admin/async_exporter/services/aws_s3_service.rb, line 35 def bucket_folder path = ActiveAdmin::AsyncExporter.config.aws_bucket_folder_path return '' if path.blank? "#{path}/" end
filename()
click to toggle source
# File lib/active_admin/async_exporter/services/aws_s3_service.rb, line 31 def filename @filename ||= "#{bucket_folder}#{file[:name]}" end