class AutoAliCDN::Oss
Public Class Methods
bucket(oss_config)
click to toggle source
# File lib/auto-ali-cdn/oss.rb, line 15 def self.bucket(oss_config) client = Aliyun::OSS::Client.new( :endpoint => oss_config.endpoint, :access_key_id => oss_config.access_key_id, :access_key_secret => oss_config.access_key_secret) client.get_bucket(oss_config.bucket) end
oss_config(config_path)
click to toggle source
# File lib/auto-ali-cdn/oss.rb, line 4 def self.oss_config(config_path) config = YAML.load_file(config_path) AutoAliCDN::Config.access_key_id = config['access_key_id'] AutoAliCDN::Config.access_key_secret = config['access_key_secret'] AutoAliCDN::Config.endpoint = config['endpoint'] AutoAliCDN::Config.bucket = config['bucket'] AutoAliCDN::Config.site_resource_path = config['site_resource_path'] AutoAliCDN::Config.domain_name = config['domain_name'] return AutoAliCDN::Config end
oss_download(config_path, app_path, remote_file, local_file)
click to toggle source
# File lib/auto-ali-cdn/oss.rb, line 53 def self.oss_download(config_path, app_path, remote_file, local_file) config = oss_config(config_path) bucket = bucket(config) object_key = config.site_resource_path+"/#{remote_file}" if bucket.object_exists?(object_key) bucket.get_object(object_key, :file => "#{app_path}/#{local_file}") puts "#{object_key} --> #{app_path}/#{local_file}".color(:cyan) end end
oss_setup(config_path)
click to toggle source
setup dir on oss
# File lib/auto-ali-cdn/oss.rb, line 24 def self.oss_setup(config_path) config = oss_config(config_path) puts "config:#{config}" bucket = bucket(config) puts bucket.name bucket.put_object(config.site_resource_path+"/.start.txt") { |stream| stream << '2cdn setup ok' } end
oss_upload(config_path, app_path, local_file, remote_file, delete='false')
click to toggle source
# File lib/auto-ali-cdn/oss.rb, line 35 def self.oss_upload(config_path, app_path, local_file, remote_file, delete='false') config = oss_config(config_path) bucket = bucket(config) object_key = config.site_resource_path+"/#{remote_file}" if bucket.object_exists?(object_key) puts "#{name} --> #{object_key}".color(:dimgray) else begin bucket.put_object(object_key, :file => "#{app_path}/#{local_file}") puts "#{name} --> #{object_key}".color(:green) File.delete("#{app_path}/#{local_file}") if delete == 'true' rescue Aliyun::OSS::CallbackError => e puts "Callback failed: #{e.message}" end end end