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.4'
Instance Attribute Summary collapse
-
#aws_access_key_id ⇒ Object
Accessors for required AWS attributes.
-
#aws_endpoint ⇒ Object
Accessors for required AWS attributes.
-
#aws_secret_access_key ⇒ Object
Accessors for required AWS attributes.
Class Method Summary collapse
Instance Method Summary collapse
-
#connection ⇒ Object
A reusable HTTP connection.
Instance Attribute Details
#aws_access_key_id ⇒ Object
Accessors for required AWS attributes.
122 123 124 |
# File 'lib/jeff.rb', line 122 def aws_access_key_id @aws_access_key_id end |
#aws_endpoint ⇒ Object
Accessors for required AWS attributes.
122 123 124 |
# File 'lib/jeff.rb', line 122 def aws_endpoint @aws_endpoint end |
#aws_secret_access_key ⇒ Object
Accessors for required AWS attributes.
122 123 124 |
# File 'lib/jeff.rb', line 122 def aws_secret_access_key @aws_secret_access_key end |
Class Method Details
.included(base) ⇒ Object
97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/jeff.rb', line 97 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
A reusable HTTP connection.
113 114 115 116 117 118 119 |
# File 'lib/jeff.rb', line 113 def connection @connection ||= Excon.new(aws_endpoint, headers: { 'User-Agent' => USER_AGENT }, expects: 200, omit_default_port: true ) end |