class Notebook::StorageAdapters::S3
Attributes
s3_file_key[R]
Public Class Methods
new(attachment, options = {})
click to toggle source
Calls superclass method
Notebook::StorageAdapters::Base::new
# File lib/notebook/storage_adapters/s3.rb, line 19 def initialize(attachment, options = {}) super #-- check_valid_credentials setup_s3 end
Public Instance Methods
delete()
click to toggle source
# File lib/notebook/storage_adapters/s3.rb, line 26 def delete @bucket.object(@s3_file_key).delete end
upload()
click to toggle source
# File lib/notebook/storage_adapters/s3.rb, line 30 def upload @s3_file_key = "#{SecureRandom.uuid}/#{File.basename(attachment.file)}" @file_object = @bucket.object(@s3_file_key) @file_object.upload_file(attachment.file.path) end
url()
click to toggle source
# File lib/notebook/storage_adapters/s3.rb, line 36 def url @bucket.object(@s3_file_key).presigned_url(:get) end
Private Instance Methods
check_valid_credentials()
click to toggle source
# File lib/notebook/storage_adapters/s3.rb, line 42 def check_valid_credentials credentials = Notebook.s3_options required_credential_keys = [:access_key_id, :bucket, :region, :secret_access_key] contains_credentials = required_credential_keys.all? { |k| credentials.key?(k) } return if contains_credentials fail 'Proper credentials are not defined' end
setup_s3()
click to toggle source
# File lib/notebook/storage_adapters/s3.rb, line 51 def setup_s3 @s3_options = Notebook.s3_options @credentials = Aws::Credentials.new(@s3_options[:access_key_id], @s3_options[:secret_access_key]) @s3 = Aws::S3::Resource.new(credentials: @credentials, region: @s3_options[:region]) @bucket = @s3.bucket(@s3_options[:bucket]) end