module Fog::Storage::AWS::Utils

Attributes

region[RW]

Public Instance Methods

cdn() click to toggle source
# File lib/fog/aws/storage.rb, line 69
def cdn
  @cdn ||= Fog::AWS::CDN.new(
    :aws_access_key_id => @aws_access_key_id,
    :aws_secret_access_key => @aws_secret_access_key,
    :use_iam_profile => @use_iam_profile
  )
end
http_url(params, expires) click to toggle source
# File lib/fog/aws/storage.rb, line 77
def http_url(params, expires)
  scheme_host_path_query(params.merge(:scheme => 'http', :port => 80), expires)
end
https_url(params, expires) click to toggle source
# File lib/fog/aws/storage.rb, line 81
def https_url(params, expires)
  scheme_host_path_query(params.merge(:scheme => 'https', :port => 443), expires)
end
url(params, expires) click to toggle source
# File lib/fog/aws/storage.rb, line 85
def url(params, expires)
  Fog::Logger.deprecation("Fog::Storage::AWS => #url is deprecated, use #https_url instead [light_black](#{caller.first})[/]")
  https_url(params, expires)
end

Private Instance Methods

scheme_host_path_query(params, expires) click to toggle source
# File lib/fog/aws/storage.rb, line 92
def scheme_host_path_query(params, expires)
  params[:scheme] ||= @scheme
  if params[:port] == 80 && params[:scheme] == 'http'
    params.delete(:port)
  end
  if params[:port] == 443 && params[:scheme] == 'https'
    params.delete(:port)
  end
  params[:headers] ||= {}
  params[:headers]['Date'] = expires.to_i
  params[:path] = Fog::AWS.escape(params[:path]).gsub('%2F', '/')
  query = []
  params[:headers]['x-amz-security-token'] = @aws_session_token if @aws_session_token
  if params[:query]
    for key, value in params[:query]
      query << "#{key}=#{Fog::AWS.escape(value)}"
    end
  end
  query << "AWSAccessKeyId=#{@aws_access_key_id}"
  query << "Signature=#{Fog::AWS.escape(signature(params))}"
  query << "Expires=#{params[:headers]['Date']}"
  query << "x-amz-security-token=#{Fog::AWS.escape(@aws_session_token)}" if @aws_session_token
  port_part = params[:port] && ":#{params[:port]}"
  "#{params[:scheme]}://#{params[:host]}#{port_part}/#{params[:path]}?#{query.join('&')}"
end