aws-sdk-core 2.6.7 → 2.6.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
1
  {
2
- "version":"1.0",
3
- "examples":{
2
+ "version": "1.0",
3
+ "examples": {
4
4
  }
5
5
  }
@@ -15,6 +15,7 @@ module Aws
15
15
  class S3Accelerate < Seahorse::Client::Plugin
16
16
 
17
17
  option(:use_accelerate_endpoint, false)
18
+ option(:use_dualstack_endpoint, false)
18
19
 
19
20
  def add_handlers(handlers, config)
20
21
  operations = config.api.operation_names - [
@@ -38,7 +39,13 @@ module Aws
38
39
  class AccelerateHandler < Seahorse::Client::Handler
39
40
 
40
41
  def call(context)
41
- use_accelerate_endpoint(context) if context[:use_accelerate_endpoint]
42
+ if context[:use_accelerate_endpoint]
43
+ if context[:use_dualstack_endpoint]
44
+ use_combined_accelerate_dualstack_endpoint(context)
45
+ else
46
+ use_accelerate_endpoint(context)
47
+ end
48
+ end
42
49
  @handler.call(context)
43
50
  end
44
51
 
@@ -54,6 +61,16 @@ module Aws
54
61
  context.http_request.endpoint = endpoint.to_s
55
62
  end
56
63
 
64
+ def use_combined_accelerate_dualstack_endpoint(context)
65
+ bucket_name = context.params[:bucket]
66
+ validate_bucket_name!(bucket_name)
67
+ endpoint = URI.parse(context.http_request.endpoint.to_s)
68
+ endpoint.scheme = 'https'
69
+ endpoint.port = 443
70
+ endpoint.host = "#{bucket_name}.s3-accelerate.dualstack.amazonaws.com"
71
+ context.http_request.endpoint = endpoint.to_s
72
+ end
73
+
57
74
  def validate_bucket_name!(bucket_name)
58
75
  unless S3BucketDns.dns_compatible?(bucket_name, ssl = true)
59
76
  msg = "unable to use `accelerate: true` on buckets with "
@@ -8,6 +8,7 @@ module Aws
8
8
  class S3Dualstack < Seahorse::Client::Plugin
9
9
 
10
10
  option(:use_dualstack_endpoint, false)
11
+ option(:use_accelerate_endpoint, false)
11
12
 
12
13
  def add_handlers(handlers, config)
13
14
  handlers.add(OptionHandler, step: :initialize)
@@ -27,12 +28,12 @@ module Aws
27
28
  # @api private
28
29
  class DualstackHandler < Seahorse::Client::Handler
29
30
  def call(context)
30
- use_dualstack_endpoint(context) if context[:use_dualstack_endpoint]
31
+ apply_dualstack_endpoint(context) if use_dualstack_endpoint?(context)
31
32
  @handler.call(context)
32
33
  end
33
34
 
34
35
  private
35
- def use_dualstack_endpoint(context)
36
+ def apply_dualstack_endpoint(context)
36
37
  bucket_name = context.params[:bucket]
37
38
  region = context.config.region
38
39
  force_path_style = context.config.force_path_style
@@ -55,16 +56,12 @@ module Aws
55
56
  bucket_name && S3BucketDns.dns_compatible?(bucket_name, ssl) &&
56
57
  !context.config.force_path_style
57
58
  end
58
- end
59
59
 
60
- def after_initialize(client)
61
- cfg = client.config
62
- if cfg.use_accelerate_endpoint && cfg.use_dualstack_endpoint
63
- msg = "Use of the :use_accelerate_endpoint and :use_dualstack_endpoint"\
64
- " options together is not currently supported."
65
- raise ArgumentError, msg
60
+ def use_dualstack_endpoint?(context)
61
+ context[:use_dualstack_endpoint] && !context[:use_accelerate_endpoint]
66
62
  end
67
63
  end
64
+
68
65
  end
69
66
  end
70
67
  end
@@ -1,3 +1,3 @@
1
1
  module Aws
2
- VERSION = '2.6.7'
2
+ VERSION = '2.6.9'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.7
4
+ version: 2.6.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-12 00:00:00.000000000 Z
11
+ date: 2016-10-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jmespath