Module: Jeff
- Defined in:
- lib/jeff.rb,
lib/jeff/version.rb
Overview
Jeff mixes in client behaviour for Amazon Web Services (AWS) that require Signature version 2 authentication.
It’s Jeff, as in Jeff Bezos.
Defined Under Namespace
Modules: ClassMethods, Utils Classes: Content, Query, Request, Signature
Constant Summary collapse
- USER_AGENT =
Amazon recommends to include a User-Agent header with every request to identify the application, its version number, programming language, and host.
If not happy, override.
"Jeff/#{VERSION} (Language=Ruby; #{`hostname`.chomp})"
- VERSION =
'0.7.0'
Instance Attribute Summary collapse
-
#aws_access_key_id ⇒ Object
(also: #key)
Accessors for required AWS attributes.
-
#aws_endpoint ⇒ Object
(also: #endpoint)
Accessors for required AWS attributes.
-
#aws_secret_access_key ⇒ Object
(also: #secret)
Accessors for required AWS attributes.
Class Method Summary collapse
Instance Method Summary collapse
-
#connection ⇒ Object
An HTTP connection.
Instance Attribute Details
#aws_access_key_id ⇒ Object Also known as: key
Accessors for required AWS attributes.
95 96 97 |
# File 'lib/jeff.rb', line 95 def aws_access_key_id @aws_access_key_id end |
#aws_endpoint ⇒ Object Also known as: endpoint
Accessors for required AWS attributes.
95 96 97 |
# File 'lib/jeff.rb', line 95 def aws_endpoint @aws_endpoint end |
#aws_secret_access_key ⇒ Object Also known as: secret
Accessors for required AWS attributes.
95 96 97 |
# File 'lib/jeff.rb', line 95 def aws_secret_access_key @aws_secret_access_key end |
Class Method Details
.included(base) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/jeff.rb', line 69 def self.included(base) base.extend(ClassMethods) # Common parameters required by all AWS requests. # # Add other common parameters using `Jeff.params` if required in your # implementation. base.params( 'AWSAccessKeyId' => -> { aws_access_key_id }, 'SignatureVersion' => '2', 'SignatureMethod' => 'HmacSHA256', 'Timestamp' => -> { Time.now.utc.iso8601 } ) end |
Instance Method Details
#connection ⇒ Object
An HTTP connection. It’s reusable, which, as the author of Excon puts it, is more performant!
86 87 88 89 90 91 92 |
# File 'lib/jeff.rb', line 86 def connection @connection ||= Excon.new(endpoint, headers: { 'User-Agent' => USER_AGENT }, expects: 200, omit_default_port: true ) end |