Class: AWS::S3::Authentication::CanonicalString

Inherits:
String
  • Object
show all
Defined in:
lib/aws/s3/authentication.rb

Overview

The CanonicalString is used to generate an encrypted signature, signed with your secrect access key. It is composed of data related to the given request for which it provides authentication. This data includes the request method, request headers, and the request path. Both Header and QueryString use it to generate their signature.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request, current_host, options = {}) ⇒ CanonicalString

Returns a new instance of CanonicalString.



148
149
150
151
152
153
154
155
156
157
158
159
# File 'lib/aws/s3/authentication.rb', line 148

def initialize(request, current_host, options = {})
  super()
  @request = request
  @current_host = current_host
  @headers = {}
  @options = options
  # "For non-authenticated or anonymous requests. A NotImplemented error result code will be returned if 
  # an authenticated (signed) request specifies a Host: header other than 's3.amazonaws.com'"
  # (from http://docs.amazonwebservices.com/AmazonS3/2006-03-01/VirtualHosting.html)
  request['Host'] ||= DEFAULT_HOST
  build
end

Instance Attribute Details

#current_hostObject (readonly)

Returns the value of attribute current_host.



146
147
148
# File 'lib/aws/s3/authentication.rb', line 146

def current_host
  @current_host
end

#headersObject (readonly)

Returns the value of attribute headers.



146
147
148
# File 'lib/aws/s3/authentication.rb', line 146

def headers
  @headers
end

#requestObject (readonly)

Returns the value of attribute request.



146
147
148
# File 'lib/aws/s3/authentication.rb', line 146

def request
  @request
end

Class Method Details

.amazon_header_prefixObject



141
142
143
# File 'lib/aws/s3/authentication.rb', line 141

def amazon_header_prefix
  /^#{AMAZON_HEADER_PREFIX}/io
end

.default_headersObject



133
134
135
# File 'lib/aws/s3/authentication.rb', line 133

def default_headers
  %w(content-type content-md5)
end

.interesting_headersObject



137
138
139
# File 'lib/aws/s3/authentication.rb', line 137

def interesting_headers
  ['content-md5', 'content-type', 'date', 'Host', amazon_header_prefix]
end