azure-storage-common 1.1.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. checksums.yaml +5 -5
  2. data/lib/azure/core.rb +47 -0
  3. data/lib/azure/core/auth/authorizer.rb +36 -0
  4. data/lib/azure/core/auth/shared_key.rb +125 -0
  5. data/lib/azure/core/auth/shared_key_lite.rb +48 -0
  6. data/lib/azure/core/auth/signer.rb +51 -0
  7. data/lib/azure/core/default.rb +23 -0
  8. data/lib/azure/core/error.rb +21 -0
  9. data/lib/azure/core/filtered_service.rb +45 -0
  10. data/lib/azure/core/http/debug_filter.rb +36 -0
  11. data/lib/azure/core/http/http_error.rb +135 -0
  12. data/lib/azure/core/http/http_filter.rb +53 -0
  13. data/lib/azure/core/http/http_request.rb +194 -0
  14. data/lib/azure/core/http/http_response.rb +102 -0
  15. data/lib/azure/core/http/retry_policy.rb +84 -0
  16. data/lib/azure/core/http/signer_filter.rb +33 -0
  17. data/lib/azure/core/service.rb +46 -0
  18. data/lib/azure/core/signed_service.rb +45 -0
  19. data/lib/azure/core/utility.rb +244 -0
  20. data/lib/azure/core/version.rb +33 -0
  21. data/lib/azure/http_response_helper.rb +38 -0
  22. data/lib/azure/storage/common.rb +26 -26
  23. data/lib/azure/storage/common/autoload.rb +62 -61
  24. data/lib/azure/storage/common/client.rb +162 -162
  25. data/lib/azure/storage/common/client_options.rb +363 -363
  26. data/lib/azure/storage/common/client_options_error.rb +41 -41
  27. data/lib/azure/storage/common/configurable.rb +212 -212
  28. data/lib/azure/storage/common/core.rb +35 -35
  29. data/lib/azure/storage/common/core/auth/anonymous_signer.rb +43 -43
  30. data/lib/azure/storage/common/core/auth/shared_access_signature.rb +30 -30
  31. data/lib/azure/storage/common/core/auth/shared_access_signature_generator.rb +399 -352
  32. data/lib/azure/storage/common/core/auth/shared_access_signature_signer.rb +57 -57
  33. data/lib/azure/storage/common/core/auth/shared_key.rb +60 -60
  34. data/lib/azure/storage/common/core/auth/token_signer.rb +43 -43
  35. data/lib/azure/storage/common/core/autoload.rb +53 -53
  36. data/lib/azure/storage/common/core/error.rb +43 -43
  37. data/lib/azure/storage/common/core/filter/exponential_retry_filter.rb +64 -64
  38. data/lib/azure/storage/common/core/filter/linear_retry_filter.rb +55 -55
  39. data/lib/azure/storage/common/core/filter/retry_filter.rb +300 -300
  40. data/lib/azure/storage/common/core/http_client.rb +79 -69
  41. data/lib/azure/storage/common/core/sr.rb +85 -85
  42. data/lib/azure/storage/common/core/token_credential.rb +64 -64
  43. data/lib/azure/storage/common/core/utility.rb +255 -255
  44. data/lib/azure/storage/common/default.rb +868 -868
  45. data/lib/azure/storage/common/service/access_policy.rb +37 -37
  46. data/lib/azure/storage/common/service/cors.rb +38 -38
  47. data/lib/azure/storage/common/service/cors_rule.rb +48 -48
  48. data/lib/azure/storage/common/service/enumeration_results.rb +32 -32
  49. data/lib/azure/storage/common/service/geo_replication.rb +40 -40
  50. data/lib/azure/storage/common/service/logging.rb +47 -47
  51. data/lib/azure/storage/common/service/metrics.rb +45 -45
  52. data/lib/azure/storage/common/service/retention_policy.rb +37 -37
  53. data/lib/azure/storage/common/service/serialization.rb +335 -335
  54. data/lib/azure/storage/common/service/signed_identifier.rb +40 -40
  55. data/lib/azure/storage/common/service/storage_service.rb +322 -322
  56. data/lib/azure/storage/common/service/storage_service_properties.rb +48 -48
  57. data/lib/azure/storage/common/service/storage_service_stats.rb +39 -39
  58. data/lib/azure/storage/common/service/user_delegation_key.rb +50 -0
  59. data/lib/azure/storage/common/version.rb +49 -49
  60. metadata +60 -18
@@ -1,41 +1,41 @@
1
- # frozen_string_literal: true
2
-
3
- #-------------------------------------------------------------------------
4
- # # Copyright (c) Microsoft and contributors. All rights reserved.
5
- #
6
- # The MIT License(MIT)
7
-
8
- # Permission is hereby granted, free of charge, to any person obtaining a copy
9
- # of this software and associated documentation files(the "Software"), to deal
10
- # in the Software without restriction, including without limitation the rights
11
- # to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
12
- # copies of the Software, and to permit persons to whom the Software is
13
- # furnished to do so, subject to the following conditions :
14
-
15
- # The above copyright notice and this permission notice shall be included in
16
- # all copies or substantial portions of the Software.
17
-
18
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
21
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
- # THE SOFTWARE.
25
- #--------------------------------------------------------------------------
26
-
27
- require "azure/storage/common/core"
28
-
29
- module Azure::Storage::Common
30
- class InvalidConnectionStringError < Core::StorageError
31
- def initialize(message = Azure::Storage::Common::Core::SR::INVALID_CONNECTION_STRING)
32
- super(message)
33
- end
34
- end
35
-
36
- class InvalidOptionsError < Core::StorageError
37
- def initialize(message = Azure::Storage::Common::Core::SR::INVALID_CLIENT_OPTIONS)
38
- super(message)
39
- end
40
- end
41
- end
1
+ # frozen_string_literal: true
2
+
3
+ #-------------------------------------------------------------------------
4
+ # # Copyright (c) Microsoft and contributors. All rights reserved.
5
+ #
6
+ # The MIT License(MIT)
7
+
8
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
9
+ # of this software and associated documentation files(the "Software"), to deal
10
+ # in the Software without restriction, including without limitation the rights
11
+ # to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
12
+ # copies of the Software, and to permit persons to whom the Software is
13
+ # furnished to do so, subject to the following conditions :
14
+
15
+ # The above copyright notice and this permission notice shall be included in
16
+ # all copies or substantial portions of the Software.
17
+
18
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
21
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
+ # THE SOFTWARE.
25
+ #--------------------------------------------------------------------------
26
+
27
+ require "azure/storage/common/core"
28
+
29
+ module Azure::Storage::Common
30
+ class InvalidConnectionStringError < Core::StorageError
31
+ def initialize(message = Azure::Storage::Common::Core::SR::INVALID_CONNECTION_STRING)
32
+ super(message)
33
+ end
34
+ end
35
+
36
+ class InvalidOptionsError < Core::StorageError
37
+ def initialize(message = Azure::Storage::Common::Core::SR::INVALID_CLIENT_OPTIONS)
38
+ super(message)
39
+ end
40
+ end
41
+ end
@@ -1,212 +1,212 @@
1
- # frozen_string_literal: true
2
-
3
- #-------------------------------------------------------------------------
4
- # # Copyright (c) Microsoft and contributors. All rights reserved.
5
- #
6
- # The MIT License(MIT)
7
-
8
- # Permission is hereby granted, free of charge, to any person obtaining a copy
9
- # of this software and associated documentation files(the "Software"), to deal
10
- # in the Software without restriction, including without limitation the rights
11
- # to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
12
- # copies of the Software, and to permit persons to whom the Software is
13
- # furnished to do so, subject to the following conditions :
14
-
15
- # The above copyright notice and this permission notice shall be included in
16
- # all copies or substantial portions of the Software.
17
-
18
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
21
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
- # THE SOFTWARE.
25
- #--------------------------------------------------------------------------
26
-
27
- module Azure::Storage::Common
28
- # The Azure::Storage::Common::Configurable module provides basic configuration for Azure storage activities.
29
- module Configurable
30
- # @!attribute [w] storage_access_key
31
- # @return [String] Azure Storage access key.
32
- # @!attribute storage_account_name
33
- # @return [String] Azure Storage account name.
34
- # @!attribute storage_connection_string
35
- # @return [String] Azure Storage connection string.
36
- # @!attribute storage_blob_host
37
- # @return [String] Set the host for the Blob service. Only set this if you want
38
- # something custom (like, for example, to point this to a LocalStorage
39
- # emulator). This should be the complete host, including http:// at the
40
- # start. When using the emulator, make sure to include your account name at
41
- # the end.
42
- # @!attribute storage_table_host
43
- # @return [String] Set the host for the Table service. Only set this if you want
44
- # something custom (like, for example, to point this to a LocalStorage
45
- # emulator). This should be the complete host, including http:// at the
46
- # start. When using the emulator, make sure to include your account name at
47
- # the end.
48
- # @!attribute storage_queue_host
49
- # @return [String] Set the host for the Queue service. Only set this if you want
50
- # something custom (like, for example, to point this to a LocalStorage
51
- # emulator). This should be the complete host, including http:// at the
52
- # start. When using the emulator, make sure to include your account name at
53
- # the end.
54
-
55
- attr_accessor :storage_access_key,
56
- :storage_account_name,
57
- :storage_connection_string,
58
- :storage_sas_token
59
-
60
- attr_writer :storage_table_host,
61
- :storage_blob_host,
62
- :storage_queue_host,
63
- :storage_file_host,
64
- :storage_table_host_secondary,
65
- :storage_blob_host_secondary,
66
- :storage_queue_host_secondary,
67
- :storage_file_host_secondary
68
-
69
- attr_reader :signer
70
-
71
- class << self
72
- # List of configurable keys for {Azure::Client}
73
- # @return [Array] of option keys
74
- def keys
75
- @keys ||= [
76
- :storage_access_key,
77
- :storage_account_name,
78
- :storage_connection_string,
79
- :storage_sas_token,
80
- :storage_table_host,
81
- :storage_blob_host,
82
- :storage_queue_host,
83
- :storage_file_host,
84
- :signer
85
- ]
86
- end
87
- end
88
-
89
- # Set configuration options using a block
90
- def configure
91
- yield self
92
- end
93
-
94
- def config
95
- self
96
- end
97
-
98
- # Reset configuration options to default values
99
- def reset_config!(options = {})
100
- Azure::Storage::Common::Configurable.keys.each do |key|
101
- value =
102
- if self == Azure::Storage::Common
103
- Azure::Storage::Common::Default.options[key]
104
- else
105
- self.send(key)
106
- end
107
- instance_variable_set(:"@#{key}", options.fetch(key, value))
108
-
109
- # Set the secondary endpoint if the primary one is given
110
- if key.to_s.include? "host"
111
- instance_variable_set(:"@#{key}_secondary", secondary_endpoint(options.fetch(key, value)))
112
- end
113
- end
114
- self.send(:reset_agents!) if self.respond_to?(:reset_agents!)
115
- setup_signer_for_service(options[:api_version])
116
- self
117
- end
118
-
119
- alias setup reset_config!
120
-
121
- # Storage queue host
122
- # @return [String]
123
- def storage_queue_host(isSecondary = false)
124
- if isSecondary
125
- @storage_queue_host_secondary || default_host(:queue, true)
126
- else
127
- @storage_queue_host || default_host(:queue, false)
128
- end
129
- end
130
-
131
- # Storage blob host
132
- # @return [String]
133
- def storage_blob_host(isSecondary = false)
134
- if isSecondary
135
- @storage_blob_host_secondary || default_host(:blob, true)
136
- else
137
- @storage_blob_host || default_host(:blob, false)
138
- end
139
- end
140
-
141
- # Storage table host
142
- # @return [String]
143
- def storage_table_host(isSecondary = false)
144
- if isSecondary
145
- @storage_table_host_secondary || default_host(:table, true)
146
- else
147
- @storage_table_host || default_host(:table, false)
148
- end
149
- end
150
-
151
- # Storage file host
152
- # @return [String]
153
- def storage_file_host(isSecondary = false)
154
- if isSecondary
155
- @storage_file_host_secondary || default_host(:file, true)
156
- else
157
- @storage_file_host || default_host(:file, false)
158
- end
159
- end
160
-
161
- private
162
-
163
- def default_host(service, isSecondary = false)
164
- "https://#{storage_account_name}#{isSecondary ? "-secondary" : ""}.#{service}.core.windows.net" if storage_account_name
165
- end
166
-
167
- def setup_options
168
- opts = {}
169
- Azure::Storage::Common::Configurable.keys.map do |key|
170
- opts[key] = self.send(key) if self.send(key)
171
- end
172
- opts
173
- end
174
-
175
- def account_name_from_endpoint(endpoint)
176
- return nil if endpoint.nil?
177
- uri = URI::parse endpoint
178
- fields = uri.host.split "."
179
- fields[0]
180
- end
181
-
182
- def secondary_endpoint(primary_endpoint)
183
- return nil if primary_endpoint.nil?
184
- account_name = account_name_from_endpoint primary_endpoint
185
- primary_endpoint.sub account_name, account_name + "-secondary"
186
- end
187
-
188
- def determine_account_name
189
- if instance_variable_get(:@storage_account_name).nil?
190
- hosts = [@storage_blob_host, @storage_table_host, @storage_queue_host, @storage_file_host]
191
- account_name = nil;
192
- hosts.each do |host|
193
- parsed = account_name_from_endpoint host
194
- if account_name.nil?
195
- account_name = parsed
196
- elsif !account_name.nil? && !parsed.nil? && (account_name <=> parsed) != (0)
197
- raise InvalidOptionsError, "Ambiguous account name in service hosts."
198
- end
199
- end
200
- raise InvalidOptionsError, "Cannot identify account name." if account_name.nil?
201
- @storage_account_name = account_name
202
- end
203
- end
204
-
205
- def setup_signer_for_service(api_ver)
206
- if @storage_sas_token
207
- determine_account_name
208
- @signer = Azure::Storage::Common::Core::Auth::SharedAccessSignatureSigner.new api_ver, @storage_account_name, @storage_sas_token
209
- end
210
- end
211
- end
212
- end
1
+ # frozen_string_literal: true
2
+
3
+ #-------------------------------------------------------------------------
4
+ # # Copyright (c) Microsoft and contributors. All rights reserved.
5
+ #
6
+ # The MIT License(MIT)
7
+
8
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
9
+ # of this software and associated documentation files(the "Software"), to deal
10
+ # in the Software without restriction, including without limitation the rights
11
+ # to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
12
+ # copies of the Software, and to permit persons to whom the Software is
13
+ # furnished to do so, subject to the following conditions :
14
+
15
+ # The above copyright notice and this permission notice shall be included in
16
+ # all copies or substantial portions of the Software.
17
+
18
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
21
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
+ # THE SOFTWARE.
25
+ #--------------------------------------------------------------------------
26
+
27
+ module Azure::Storage::Common
28
+ # The Azure::Storage::Common::Configurable module provides basic configuration for Azure storage activities.
29
+ module Configurable
30
+ # @!attribute [w] storage_access_key
31
+ # @return [String] Azure Storage access key.
32
+ # @!attribute storage_account_name
33
+ # @return [String] Azure Storage account name.
34
+ # @!attribute storage_connection_string
35
+ # @return [String] Azure Storage connection string.
36
+ # @!attribute storage_blob_host
37
+ # @return [String] Set the host for the Blob service. Only set this if you want
38
+ # something custom (like, for example, to point this to a LocalStorage
39
+ # emulator). This should be the complete host, including http:// at the
40
+ # start. When using the emulator, make sure to include your account name at
41
+ # the end.
42
+ # @!attribute storage_table_host
43
+ # @return [String] Set the host for the Table service. Only set this if you want
44
+ # something custom (like, for example, to point this to a LocalStorage
45
+ # emulator). This should be the complete host, including http:// at the
46
+ # start. When using the emulator, make sure to include your account name at
47
+ # the end.
48
+ # @!attribute storage_queue_host
49
+ # @return [String] Set the host for the Queue service. Only set this if you want
50
+ # something custom (like, for example, to point this to a LocalStorage
51
+ # emulator). This should be the complete host, including http:// at the
52
+ # start. When using the emulator, make sure to include your account name at
53
+ # the end.
54
+
55
+ attr_accessor :storage_access_key,
56
+ :storage_account_name,
57
+ :storage_connection_string,
58
+ :storage_sas_token
59
+
60
+ attr_writer :storage_table_host,
61
+ :storage_blob_host,
62
+ :storage_queue_host,
63
+ :storage_file_host,
64
+ :storage_table_host_secondary,
65
+ :storage_blob_host_secondary,
66
+ :storage_queue_host_secondary,
67
+ :storage_file_host_secondary
68
+
69
+ attr_reader :signer
70
+
71
+ class << self
72
+ # List of configurable keys for {Azure::Client}
73
+ # @return [Array] of option keys
74
+ def keys
75
+ @keys ||= [
76
+ :storage_access_key,
77
+ :storage_account_name,
78
+ :storage_connection_string,
79
+ :storage_sas_token,
80
+ :storage_table_host,
81
+ :storage_blob_host,
82
+ :storage_queue_host,
83
+ :storage_file_host,
84
+ :signer
85
+ ]
86
+ end
87
+ end
88
+
89
+ # Set configuration options using a block
90
+ def configure
91
+ yield self
92
+ end
93
+
94
+ def config
95
+ self
96
+ end
97
+
98
+ # Reset configuration options to default values
99
+ def reset_config!(options = {})
100
+ Azure::Storage::Common::Configurable.keys.each do |key|
101
+ value =
102
+ if self == Azure::Storage::Common
103
+ Azure::Storage::Common::Default.options[key]
104
+ else
105
+ self.send(key)
106
+ end
107
+ instance_variable_set(:"@#{key}", options.fetch(key, value))
108
+
109
+ # Set the secondary endpoint if the primary one is given
110
+ if key.to_s.include? "host"
111
+ instance_variable_set(:"@#{key}_secondary", secondary_endpoint(options.fetch(key, value)))
112
+ end
113
+ end
114
+ self.send(:reset_agents!) if self.respond_to?(:reset_agents!)
115
+ setup_signer_for_service(options[:api_version])
116
+ self
117
+ end
118
+
119
+ alias setup reset_config!
120
+
121
+ # Storage queue host
122
+ # @return [String]
123
+ def storage_queue_host(isSecondary = false)
124
+ if isSecondary
125
+ @storage_queue_host_secondary || default_host(:queue, true)
126
+ else
127
+ @storage_queue_host || default_host(:queue, false)
128
+ end
129
+ end
130
+
131
+ # Storage blob host
132
+ # @return [String]
133
+ def storage_blob_host(isSecondary = false)
134
+ if isSecondary
135
+ @storage_blob_host_secondary || default_host(:blob, true)
136
+ else
137
+ @storage_blob_host || default_host(:blob, false)
138
+ end
139
+ end
140
+
141
+ # Storage table host
142
+ # @return [String]
143
+ def storage_table_host(isSecondary = false)
144
+ if isSecondary
145
+ @storage_table_host_secondary || default_host(:table, true)
146
+ else
147
+ @storage_table_host || default_host(:table, false)
148
+ end
149
+ end
150
+
151
+ # Storage file host
152
+ # @return [String]
153
+ def storage_file_host(isSecondary = false)
154
+ if isSecondary
155
+ @storage_file_host_secondary || default_host(:file, true)
156
+ else
157
+ @storage_file_host || default_host(:file, false)
158
+ end
159
+ end
160
+
161
+ private
162
+
163
+ def default_host(service, isSecondary = false)
164
+ "https://#{storage_account_name}#{isSecondary ? "-secondary" : ""}.#{service}.core.windows.net" if storage_account_name
165
+ end
166
+
167
+ def setup_options
168
+ opts = {}
169
+ Azure::Storage::Common::Configurable.keys.map do |key|
170
+ opts[key] = self.send(key) if self.send(key)
171
+ end
172
+ opts
173
+ end
174
+
175
+ def account_name_from_endpoint(endpoint)
176
+ return nil if endpoint.nil?
177
+ uri = URI::parse endpoint
178
+ fields = uri.host.split "."
179
+ fields[0]
180
+ end
181
+
182
+ def secondary_endpoint(primary_endpoint)
183
+ return nil if primary_endpoint.nil?
184
+ account_name = account_name_from_endpoint primary_endpoint
185
+ primary_endpoint.sub account_name, account_name + "-secondary"
186
+ end
187
+
188
+ def determine_account_name
189
+ if instance_variable_get(:@storage_account_name).nil?
190
+ hosts = [@storage_blob_host, @storage_table_host, @storage_queue_host, @storage_file_host]
191
+ account_name = nil;
192
+ hosts.each do |host|
193
+ parsed = account_name_from_endpoint host
194
+ if account_name.nil?
195
+ account_name = parsed
196
+ elsif !account_name.nil? && !parsed.nil? && (account_name <=> parsed) != (0)
197
+ raise InvalidOptionsError, "Ambiguous account name in service hosts."
198
+ end
199
+ end
200
+ raise InvalidOptionsError, "Cannot identify account name." if account_name.nil?
201
+ @storage_account_name = account_name
202
+ end
203
+ end
204
+
205
+ def setup_signer_for_service(api_ver)
206
+ if @storage_sas_token
207
+ determine_account_name
208
+ @signer = Azure::Storage::Common::Core::Auth::SharedAccessSignatureSigner.new api_ver, @storage_account_name, @storage_sas_token
209
+ end
210
+ end
211
+ end
212
+ end