class COS::Config
Constants
- DEFAULT_HOST
默认服务HOST
- DEFAULT_MULTIPLE_SIGN_EXPIRE
默认多次签名过期时间(单位秒)
Attributes
Public Class Methods
初始化
@example
COS::Config.new(app_id: '', secret_id: '', secret_key: '')
@param options [Hash] 客户端配置 @option options [String] :app_id COS分配的app_id @option options [String] :secret_id COS分配的secret_id @option options [String] :secret_key COS分配的secret_key @option options [String] :host COS服务host地址 @option options [String] :protocol 使用协议,默认为http,可选https @option options [Integer] :open_timeout 接口通讯建立连接超时秒数 @option options [Integer] :read_timeout 接口通讯读取数据超时秒数 @option options [String] :config 配置文件路径 @option options [String|Object] :log_src 日志输出
STDOUT | STDERR | 'path/filename.log'
@option options [Logger] :log_level 日志级别
Logger::DEBUG | Logger::INFO | Logger::ERROR | Logger::FATAL
@option options [String] :multiple_sign_expire 多次签名过期时间(单位秒) @option options [String] :default_bucket 默认bucket
@return [COS::Config]
@raise [AttrError] 如果缺少参数会抛出参数错误异常
# File lib/cos/config.rb, line 48 def initialize(options = {}) # 从配置文件加载配置 if options[:config] config = load_config_file(options[:config]) options.merge!(config) end super(options) # log_src: STDOUT | STDERR | 'path/filename.log' # log_level: Logger::DEBUG | Logger::INFO | Logger::ERROR | Logger::FATAL if options[:log_src] Logging.set_logger( options[:log_src], options[:log_level] || Logger::INFO ) end @protocol ||= 'http' @host ||= DEFAULT_HOST @api_base = "#{@protocol}://#{@host}/files/v1" @multiple_sign_expire ||= DEFAULT_MULTIPLE_SIGN_EXPIRE end
Public Instance Methods
获取指定的bucket或从config中获取默认bucket
@params custom_bucket [String] bucket名称
@return [String]
@raise [ClientError]
# File lib/cos/config.rb, line 79 def get_bucket(custom_bucket) b = custom_bucket || default_bucket if b == nil raise ClientError, 'Bucket name must be set' end b end
Private Instance Methods
加载yaml配置文件
# File lib/cos/config.rb, line 90 def load_config_file(config_file) hash = YAML.load(File.read(File.expand_path(config_file))) # Hash key字符串转为symbol hash.keys.each do |key| hash[(key.to_sym rescue key) || key] = hash.delete(key) end hash end