def get_object_https_url(container, object, expires, options = {})
if @rackspace_temp_url_key.nil?
raise ArgumentError, "Storage must be instantiated with the :rackspace_temp_url_key option"
end
method = options[:method] || 'GET'
expires = expires.to_i
object_path_escaped = "#{@uri.path}/#{Fog::Rackspace.escape(container)}/#{Fog::Rackspace.escape(object,"/")}"
object_path_unescaped = "#{@uri.path}/#{Fog::Rackspace.escape(container)}/#{object}"
string_to_sign = "#{method}\n#{expires}\n#{object_path_unescaped}"
hmac = Fog::HMAC.new('sha1', @rackspace_temp_url_key)
sig = sig_to_hex(hmac.sign(string_to_sign))
temp_url_query = {
:temp_url_sig => sig,
:temp_url_expires => expires
}
temp_url_query.merge!(:inline => true) if options[:inline]
temp_url_query.merge!(:filename => options[:filename]) if options[:filename]
temp_url_options = {
:scheme => options[:scheme] || @uri.scheme,
:host => @uri.host,
:path => object_path_escaped,
:query => temp_url_query.map { |param, val| "#{CGI.escape(param.to_s)}=#{CGI.escape(val.to_s)}" }.join('&')
}
URI::Generic.build(temp_url_options).to_s
end