class EasyS3
Constants
- VERSION
Attributes
dir[R]
fog[R]
Public Class Methods
new(dir_name, options={})
click to toggle source
# File lib/easy-s3.rb, line 11 def initialize(dir_name, options={}) options[:access_key_id] ||= Fog.credentials[:aws_access_key_id] options[:secret_access_key] ||= Fog.credentials[:aws_secret_access_key] options[:region] ||= Fog.credentials[:region] Fog.credentials = { aws_access_key_id: options[:access_key_id], aws_secret_access_key: options[:secret_access_key], region: options[:region] } begin @fog = Fog::Storage.new(provider: 'AWS') @dir = @fog.directories.get(dir_name) rescue ArgumentError raise MissingOptions, 'access_key_id or secret_access_key' rescue Excon::Errors::MovedPermanently, 'Expected(200) <=> Actual(301 Moved Permanently)' raise DirectoryDoesNotExist, dir_name end raise DirectoryDoesNotExist, dir_name if @dir.nil? true end
Public Instance Methods
create_file(file_path, options={})
click to toggle source
Create private or public file into directory
# File lib/easy-s3.rb, line 36 def create_file(file_path, options={}) options[:digest] ||= false options[:public] ||= false begin file = File.open(file_path) rescue raise FileNotFound, file_path end extension = File.extname(file_path) filename = File.basename(file_path, extension) filename += "_#{Digest::SHA1.hexdigest(File.basename(file_path))}" if options[:digest] filename += extension file = @dir.files.create( key: filename, body: file, public: options[:public] ) return file.public_url if options[:public] && file.public_url file.url((Time.now + 3600).to_i) # 1 hour end
delete_file(url)
click to toggle source
Delete file by url
# File lib/easy-s3.rb, line 63 def delete_file(url) file_name = get_filename_by_url(url) return false unless @dir.files.head(file_name) @dir.files.get(file_name).destroy end
files()
click to toggle source
Get all files into directory
# File lib/easy-s3.rb, line 70 def files @dir.files.all end
Private Instance Methods
get_filename_by_url(url)
click to toggle source
# File lib/easy-s3.rb, line 76 def get_filename_by_url(url) File.basename(URI(url).path) end