module EC2::Common::Signature
Public Class Methods
curl_args_sigv2(url, bucket, http_method, options, user, pass)
click to toggle source
# File lib/ec2/common/signature.rb, line 19 def self.curl_args_sigv2(url, bucket, http_method, options, user, pass) headers = EC2::Common::Headers.new(http_method) options.each do |name, value| headers.add(name, value) end headers.sign(user, pass, url, bucket) if user and pass headers.get end
curl_args_sigv4(url, region, bucket, http_method, optional_headers, user, pass, data=nil)
click to toggle source
# File lib/ec2/common/signature.rb, line 26 def self.curl_args_sigv4(url, region, bucket, http_method, optional_headers, user, pass, data=nil) aws_secret_access_key = pass aws_access_key_id = user if (user.is_a?(Hash)) aws_access_key_id = user['aws_access_key_id'] aws_secret_access_key = user['aws_secret_access_key'] delegation_token = user['aws_delegation_token'] end host, path, query = parseURL(url, bucket) hexdigest = if data HeadersV4::hexdigest data else HeadersV4::hexdigest "" end optional_headers ||= {} unless delegation_token.nil? optional_headers[EC2::Common::Headers::X_AMZ_SECURITY_TOKEN] = delegation_token end headers_obj = HeadersV4.new({:host => host, :hexdigest_body => hexdigest, :region => region, :service => "s3", :http_method => http_method, :path => path, :querystring => query, :access_key_id => aws_access_key_id, :secret_access_key => aws_secret_access_key}, optional_headers) headers = headers_obj.add_authorization! headers end
parseURL(url, bucket)
click to toggle source
# File lib/ec2/common/signature.rb, line 58 def self.parseURL(url, bucket) uri = URI.parse(url) host = uri.host path = uri.path path = "/" if path == "" [host, path, "#{uri.query}"] end