class Attach::S3::Backend
Public Instance Methods
delete(attachment)
click to toggle source
# File lib/attach/s3/backend.rb, line 24 def delete(attachment) s3 = setup_s3_request path = path_for_attachment(attachment) s3.bucket(@config[:bucket]).object(path).delete end
read(attachment)
click to toggle source
# File lib/attach/s3/backend.rb, line 9 def read(attachment) s3 = setup_s3_request path = path_for_attachment(attachment) resp = s3.bucket(@config[:bucket]).object(path).get resp.body.read end
write(attachment, data)
click to toggle source
# File lib/attach/s3/backend.rb, line 17 def write(attachment, data) s3 = setup_s3_request path = path_for_attachment(attachment) s3.bucket(@config[:bucket]).object(path).put(body: attachment.binary) end
Private Instance Methods
path_for_attachment(attachment)
click to toggle source
# File lib/attach/s3/backend.rb, line 42 def path_for_attachment(attachment) ::File.join("attachments", attachment.token[0,2], attachment.token[2,2], attachment.token[4,40], attachment.file_name) end
setup_s3_request()
click to toggle source
# File lib/attach/s3/backend.rb, line 33 def setup_s3_request Aws.config.update({ region: @config[:region], credentials: Aws::Credentials.new(@config[:access_key], @config[:secret_access_key]) }) Aws::S3::Resource.new end