Class: Aws::S3::Plugins::S3Signer Private
- Inherits:
-
Seahorse::Client::Plugin
- Object
- Seahorse::Client::Plugin
- Aws::S3::Plugins::S3Signer
- Defined in:
- lib/aws-sdk-s3/plugins/s3_signer.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
This plugin is an implementation detail and may be modified.
Defined Under Namespace
Classes: BucketRegionErrorHandler, CachedBucketRegionHandler, LegacyHandler, V4Handler
Class Method Summary collapse
- .build_v4_signer(options = {}) ⇒ Object private
-
.new_hostname(context, region) ⇒ Object
private
Check to see if the bucket is actually an ARN Otherwise it will retry with the ARN as the bucket name.
Instance Method Summary collapse
- #add_handlers(handlers, cfg) ⇒ Object private
- #add_legacy_handler(handlers) ⇒ Object private
- #add_v4_handlers(handlers) ⇒ Object private
Class Method Details
.build_v4_signer(options = {}) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
208 209 210 211 212 213 214 215 216 |
# File 'lib/aws-sdk-s3/plugins/s3_signer.rb', line 208 def build_v4_signer( = {}) Aws::Sigv4::Signer.new( service: [:service], region: [:region], credentials_provider: [:credentials], uri_escape_path: false, unsigned_headers: ['content-length', 'x-amzn-trace-id'] ) end |
.new_hostname(context, region) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Check to see if the bucket is actually an ARN Otherwise it will retry with the ARN as the bucket name.
220 221 222 223 224 225 226 227 228 229 230 231 |
# File 'lib/aws-sdk-s3/plugins/s3_signer.rb', line 220 def new_hostname(context, region) uri = URI.parse( Aws::Partitions::EndpointProvider.resolve(region, 's3') ) if (arn = context.[:s3_arn]) # Retry with the response region and not the ARN resolved one ARN.resolve_url!(uri, arn[:arn], region).host else "#{context.params[:bucket]}.#{uri.host}" end end |
Instance Method Details
#add_handlers(handlers, cfg) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
28 29 30 31 32 33 34 35 36 |
# File 'lib/aws-sdk-s3/plugins/s3_signer.rb', line 28 def add_handlers(handlers, cfg) case cfg.signature_version when 'v4' then add_v4_handlers(handlers) when 's3' then add_legacy_handler(handlers) else msg = "unsupported signature version `#{cfg.signature_version}'" raise ArgumentError, msg end end |
#add_legacy_handler(handlers) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
44 45 46 |
# File 'lib/aws-sdk-s3/plugins/s3_signer.rb', line 44 def add_legacy_handler(handlers) handlers.add(LegacyHandler, step: :sign) end |
#add_v4_handlers(handlers) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
38 39 40 41 42 |
# File 'lib/aws-sdk-s3/plugins/s3_signer.rb', line 38 def add_v4_handlers(handlers) handlers.add(CachedBucketRegionHandler, step: :sign, priority: 60) handlers.add(V4Handler, step: :sign) handlers.add(BucketRegionErrorHandler, step: :sign, priority: 40) end |