class AudioFeedManager::S3Gateway
Public Instance Methods
sync(key, file_name) { |key| ... }
click to toggle source
# File lib/audio_feed_manager/s3_gateway.rb, line 12 def sync(key, file_name, &block) return unless needs_syncing?(key, file_name) yield key if block_given? object = bucket.object(key) object.upload_file(file_name) object.acl.put(acl: "public-read") end
url(path)
click to toggle source
# File lib/audio_feed_manager/s3_gateway.rb, line 8 def url(path) bucket.object(path).public_url end
Private Instance Methods
bucket()
click to toggle source
# File lib/audio_feed_manager/s3_gateway.rb, line 35 def bucket @bucket ||= s3.bucket(config.s3_bucket) end
needs_syncing?(key, file_name)
click to toggle source
# File lib/audio_feed_manager/s3_gateway.rb, line 23 def needs_syncing?(key, file_name) object = bucket.object(key) return true unless object.exists? object.etag.gsub('"', '') != Digest::MD5.file(file_name).to_s end
s3()
click to toggle source
# File lib/audio_feed_manager/s3_gateway.rb, line 29 def s3 @s3 ||= Aws::S3::Resource.new(access_key_id: config.s3_access_key, secret_access_key: config.s3_secret, region: config.s3_region) end