class MiniPaperclip::Storage::S3
Public Instance Methods
do_delete_files()
click to toggle source
# File lib/mini_paperclip/storage/s3.rb, line 42 def do_delete_files return if @deletes.empty? debug("deleting by S3 to bucket:#{@config.s3_bucket_name},objects:#{@deletes}") Aws::S3::Client.new.delete_objects( bucket: @config.s3_bucket_name, delete: { objects: @deletes, quiet: true, } ) end
exists?(style)
click to toggle source
# File lib/mini_paperclip/storage/s3.rb, line 28 def exists?(style) Aws::S3::Client.new.head_object( bucket: @config.s3_bucket_name, key: s3_object_key(style), ) true rescue Aws::S3::Errors::NotFound false end
host()
click to toggle source
# File lib/mini_paperclip/storage/s3.rb, line 23 def host # AWS CloudFront origin should be attached bucket name @config.s3_host_alias || "#{@config.s3_bucket_name}.#{@config.url_host}" end
open(style) { |response_target| ... }
click to toggle source
# File lib/mini_paperclip/storage/s3.rb, line 54 def open(style) Tempfile.new(['MiniPaperclip::Storage::S3']).tap do |response_target| response_target.binmode Aws::S3::Client.new.get_object( bucket: @config.s3_bucket_name, key: s3_object_key(style), response_target: response_target, ) yield response_target if block_given? end end
push_delete_file(style)
click to toggle source
# File lib/mini_paperclip/storage/s3.rb, line 38 def push_delete_file(style) @deletes.push({ key: s3_object_key(style) }) end
s3_object_key(style)
click to toggle source
# File lib/mini_paperclip/storage/s3.rb, line 19 def s3_object_key(style) interpolate(@config.url_path, style) end
write(style, file)
click to toggle source
# File lib/mini_paperclip/storage/s3.rb, line 6 def write(style, file) debug("writing by S3 to bucket:#{@config.s3_bucket_name},key:#{s3_object_key(style)}") Aws::S3::Client.new.put_object( acl: @config.s3_acl, cache_control: @config.s3_cache_control, content_type: @attachment.content_type, body: file.tap(&:rewind), bucket: @config.s3_bucket_name, key: s3_object_key(style), ) @deletes.delete({ key: s3_object_key(style) }) # cancel deletion if overwrite end