azure-storage 0.13.0.preview → 0.14.0.preview

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/lib/azure/storage.rb +14 -13
  3. data/lib/azure/storage/autoload.rb +31 -31
  4. data/lib/azure/storage/blob/append.rb +43 -41
  5. data/lib/azure/storage/blob/blob.rb +150 -147
  6. data/lib/azure/storage/blob/blob_service.rb +186 -184
  7. data/lib/azure/storage/blob/block.rb +56 -56
  8. data/lib/azure/storage/blob/container.rb +93 -92
  9. data/lib/azure/storage/blob/page.rb +187 -104
  10. data/lib/azure/storage/blob/serialization.rb +32 -18
  11. data/lib/azure/storage/client.rb +18 -17
  12. data/lib/azure/storage/client_options.rb +192 -193
  13. data/lib/azure/storage/client_options_error.rb +5 -5
  14. data/lib/azure/storage/configurable.rb +39 -39
  15. data/lib/azure/storage/core.rb +6 -4
  16. data/lib/azure/storage/core/auth/shared_access_signature.rb +5 -3
  17. data/lib/azure/storage/core/auth/shared_access_signature_generator.rb +34 -33
  18. data/lib/azure/storage/core/auth/shared_access_signature_signer.rb +5 -5
  19. data/lib/azure/storage/core/auth/shared_key.rb +17 -15
  20. data/lib/azure/storage/core/autoload.rb +15 -13
  21. data/lib/azure/storage/core/error.rb +3 -1
  22. data/lib/azure/storage/core/filter/exponential_retry_filter.rb +13 -11
  23. data/lib/azure/storage/core/filter/linear_retry_filter.rb +10 -8
  24. data/lib/azure/storage/core/filter/retry_filter.rb +30 -29
  25. data/lib/azure/storage/core/http_client.rb +18 -16
  26. data/lib/azure/storage/core/sr.rb +50 -48
  27. data/lib/azure/storage/core/utility.rb +19 -17
  28. data/lib/azure/storage/default.rb +371 -361
  29. data/lib/azure/storage/file/directory.rb +36 -31
  30. data/lib/azure/storage/file/file.rb +103 -100
  31. data/lib/azure/storage/file/file_service.rb +42 -40
  32. data/lib/azure/storage/file/serialization.rb +9 -6
  33. data/lib/azure/storage/file/share.rb +48 -46
  34. data/lib/azure/storage/queue/message.rb +3 -1
  35. data/lib/azure/storage/queue/queue.rb +3 -2
  36. data/lib/azure/storage/queue/queue_service.rb +152 -151
  37. data/lib/azure/storage/queue/serialization.rb +7 -5
  38. data/lib/azure/storage/service/access_policy.rb +3 -1
  39. data/lib/azure/storage/service/cors.rb +4 -2
  40. data/lib/azure/storage/service/cors_rule.rb +3 -1
  41. data/lib/azure/storage/service/enumeration_results.rb +3 -1
  42. data/lib/azure/storage/service/logging.rb +5 -3
  43. data/lib/azure/storage/service/metrics.rb +5 -3
  44. data/lib/azure/storage/service/retention_policy.rb +3 -1
  45. data/lib/azure/storage/service/serialization.rb +31 -30
  46. data/lib/azure/storage/service/signed_identifier.rb +5 -4
  47. data/lib/azure/storage/service/storage_service.rb +33 -32
  48. data/lib/azure/storage/service/storage_service_properties.rb +6 -4
  49. data/lib/azure/storage/table/auth/shared_key.rb +9 -8
  50. data/lib/azure/storage/table/batch.rb +55 -55
  51. data/lib/azure/storage/table/batch_response.rb +17 -17
  52. data/lib/azure/storage/table/edmtype.rb +9 -7
  53. data/lib/azure/storage/table/entity.rb +4 -3
  54. data/lib/azure/storage/table/guid.rb +3 -1
  55. data/lib/azure/storage/table/query.rb +17 -19
  56. data/lib/azure/storage/table/serialization.rb +14 -12
  57. data/lib/azure/storage/table/table_service.rb +79 -80
  58. data/lib/azure/storage/version.rb +7 -5
  59. metadata +2 -2
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  #-------------------------------------------------------------------------
2
4
  # # Copyright (c) Microsoft and contributors. All rights reserved.
3
5
  #
@@ -21,23 +23,23 @@
21
23
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
24
  # THE SOFTWARE.
23
25
  #--------------------------------------------------------------------------
24
- require 'base64'
25
- require 'azure/storage/core/auth/shared_key'
26
- require 'azure/storage/blob/container'
27
- require 'azure/storage/blob/blob'
28
- require 'azure/storage/blob/block'
29
- require 'azure/storage/blob/page'
30
- require 'azure/storage/blob/append'
26
+ require "base64"
27
+ require "azure/storage/core/auth/shared_key"
28
+ require "azure/storage/blob/container"
29
+ require "azure/storage/blob/blob"
30
+ require "azure/storage/blob/block"
31
+ require "azure/storage/blob/page"
32
+ require "azure/storage/blob/append"
31
33
 
32
34
  module Azure::Storage
33
35
  include Service
34
-
36
+
35
37
  module Blob
36
38
  class BlobService < StorageService
37
39
  include Azure::Storage::Core::Utility
38
40
  include Azure::Storage::Blob
39
41
  include Azure::Storage::Blob::Container
40
-
42
+
41
43
  def initialize(options = {}, &block)
42
44
  client_config = options[:client] || Azure::Storage
43
45
  signer = options[:signer] || client_config.signer || Azure::Storage::Core::Auth::SharedKey.new(client_config.storage_account_name, client_config.storage_access_key)
@@ -45,13 +47,13 @@ module Azure::Storage
45
47
  @host = client.storage_blob_host
46
48
  end
47
49
 
48
- def call(method, uri, body=nil, headers={}, options={})
50
+ def call(method, uri, body = nil, headers = {}, options = {})
49
51
  # Force the request.body to the content encoding of specified in the header
50
- if headers && !body.nil? && (body.is_a? String) && ((body.encoding.to_s <=> 'ASCII_8BIT') != 0)
51
- if headers['x-ms-blob-content-type'].nil?
52
- Service::StorageService.with_header headers, 'x-ms-blob-content-type', "text/plain; charset=#{body.encoding}"
52
+ if headers && !body.nil? && (body.is_a? String) && ((body.encoding.to_s <=> "ASCII_8BIT") != 0)
53
+ if headers["x-ms-blob-content-type"].nil?
54
+ Service::StorageService.with_header headers, "x-ms-blob-content-type", "text/plain; charset=#{body.encoding}"
53
55
  else
54
- charset = parse_charset_from_content_type(headers['x-ms-blob-content-type'])
56
+ charset = parse_charset_from_content_type(headers["x-ms-blob-content-type"])
55
57
  body.force_encoding(charset) if charset
56
58
  end
57
59
  end
@@ -60,8 +62,8 @@ module Azure::Storage
60
62
 
61
63
  # Force the response.body to the content charset of specified in the header.
62
64
  # Content-Type is echo'd back for the blob and is used to store the encoding of the octet stream
63
- if !response.nil? && !response.body.nil? && response.headers['Content-Type']
64
- charset = parse_charset_from_content_type(response.headers['Content-Type'])
65
+ if !response.nil? && !response.body.nil? && response.headers["Content-Type"]
66
+ charset = parse_charset_from_content_type(response.headers["Content-Type"])
65
67
  response.body.force_encoding(charset) if charset && charset.length > 0
66
68
  end
67
69
 
@@ -98,7 +100,7 @@ module Azure::Storage
98
100
  #
99
101
  # * +:timeout+ - Integer. A timeout in seconds.
100
102
  #
101
- # * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
103
+ # * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
102
104
  # in the analytics logs when storage analytics logging is enabled.
103
105
  #
104
106
  # See: https://msdn.microsoft.com/en-us/library/azure/dd179352.aspx
@@ -114,14 +116,14 @@ module Azure::Storage
114
116
  #
115
117
  # Returns an Azure::Service::EnumerationResults
116
118
  #
117
- def list_containers(options={})
118
- query = { }
119
+ def list_containers(options = {})
120
+ query = {}
119
121
  if options
120
- StorageService.with_query query, 'prefix', options[:prefix]
121
- StorageService.with_query query, 'marker', options[:marker]
122
- StorageService.with_query query, 'maxresults', options[:max_results].to_s if options[:max_results]
123
- StorageService.with_query query, 'include', 'metadata' if options[:metadata] == true
124
- StorageService.with_query query, 'timeout', options[:timeout].to_s if options[:timeout]
122
+ StorageService.with_query query, "prefix", options[:prefix]
123
+ StorageService.with_query query, "marker", options[:marker]
124
+ StorageService.with_query query, "maxresults", options[:max_results].to_s if options[:max_results]
125
+ StorageService.with_query query, "include", "metadata" if options[:metadata] == true
126
+ StorageService.with_query query, "timeout", options[:timeout].to_s if options[:timeout]
125
127
  end
126
128
 
127
129
  uri = containers_uri(query)
@@ -129,7 +131,7 @@ module Azure::Storage
129
131
 
130
132
  Serialization.container_enumeration_results_from_xml(response.body)
131
133
  end
132
-
134
+
133
135
  # Protected: Establishes an exclusive write lock on a container or a blob. The lock duration can be 15 to 60 seconds, or can be infinite.
134
136
  # To write to a locked container or blob, a client must provide a lease ID.
135
137
  #
@@ -147,19 +149,19 @@ module Azure::Storage
147
149
  # * +:proposed_lease_id+ - String. Proposed lease ID, in a GUID string format. The Blob service returns 400 (Invalid request)
148
150
  # if the proposed lease ID is not in the correct format. (optional)
149
151
  # * +:timeout+ - Integer. A timeout in seconds.
150
- # * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
152
+ # * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
151
153
  # in the analytics logs when storage analytics logging is enabled.
152
154
  # * +:if_modified_since+ - String. A DateTime value. Specify this conditional header to acquire the lease
153
- # only if the blob has been modified since the specified date/time. If the blob has not been modified,
155
+ # only if the blob has been modified since the specified date/time. If the blob has not been modified,
154
156
  # the Blob service returns status code 412 (Precondition Failed).
155
157
  # * +:if_unmodified_since+ - String. A DateTime value. Specify this conditional header to acquire the lease
156
- # only if the blob has not been modified since the specified date/time. If the blob has been modified,
158
+ # only if the blob has not been modified since the specified date/time. If the blob has been modified,
157
159
  # the Blob service returns status code 412 (Precondition Failed).
158
160
  # * +:if_match+ - String. An ETag value. Specify an ETag value for this conditional header to acquire the lease
159
- # only if the blob's ETag value matches the value specified. If the values do not match,
161
+ # only if the blob's ETag value matches the value specified. If the values do not match,
160
162
  # the Blob service returns status code 412 (Precondition Failed).
161
163
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to acquire the lease
162
- # only if the blob's ETag value does not match the value specified. If the values are identical,
164
+ # only if the blob's ETag value does not match the value specified. If the values are identical,
163
165
  # the Blob service returns status code 412 (Precondition Failed).
164
166
  #
165
167
  # See http://msdn.microsoft.com/en-us/library/azure/ee691972.aspx
@@ -168,28 +170,28 @@ module Azure::Storage
168
170
  # to write, or to renew, change, or release the lease.
169
171
  #
170
172
  protected
171
- def acquire_lease(container, blob, options={})
172
- query = { 'comp' => 'lease' }
173
- Service::StorageService.with_query query, 'timeout', options[:timeout].to_s if options[:timeout]
174
-
175
- if blob
176
- uri = blob_uri(container, blob, query)
177
- else
178
- uri = container_uri(container, query)
179
- end
173
+ def acquire_lease(container, blob, options = {})
174
+ query = { "comp" => "lease" }
175
+ Service::StorageService.with_query query, "timeout", options[:timeout].to_s if options[:timeout]
180
176
 
181
- duration = -1
182
- duration = options[:duration] if options[:duration]
177
+ if blob
178
+ uri = blob_uri(container, blob, query)
179
+ else
180
+ uri = container_uri(container, query)
181
+ end
183
182
 
184
- headers = Service::StorageService.common_headers
185
- Service::StorageService.with_header headers, 'x-ms-lease-action', 'acquire'
186
- Service::StorageService.with_header headers, 'x-ms-lease-duration', duration.to_s if duration
187
- Service::StorageService.with_header headers, 'x-ms-proposed-lease-id', options[:proposed_lease_id]
188
- add_blob_conditional_headers options, headers
183
+ duration = -1
184
+ duration = options[:duration] if options[:duration]
189
185
 
190
- response = call(:put, uri, nil, headers, options)
191
- response.headers['x-ms-lease-id']
192
- end
186
+ headers = Service::StorageService.common_headers
187
+ Service::StorageService.with_header headers, "x-ms-lease-action", "acquire"
188
+ Service::StorageService.with_header headers, "x-ms-lease-duration", duration.to_s if duration
189
+ Service::StorageService.with_header headers, "x-ms-proposed-lease-id", options[:proposed_lease_id]
190
+ add_blob_conditional_headers options, headers
191
+
192
+ response = call(:put, uri, nil, headers, options)
193
+ response.headers["x-ms-lease-id"]
194
+ end
193
195
 
194
196
  # Protected: Renews the lease. The lease can be renewed if the lease ID specified on the request matches that
195
197
  # associated with the blob. Note that the lease may be renewed even if it has expired as long as the container or blob
@@ -207,19 +209,19 @@ module Azure::Storage
207
209
  #
208
210
  # Accepted key/value pairs in options parameter are:
209
211
  # * +:timeout+ - Integer. A timeout in seconds.
210
- # * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
212
+ # * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
211
213
  # in the analytics logs when storage analytics logging is enabled.
212
214
  # * +:if_modified_since+ - String. A DateTime value. Specify this conditional header to renew the lease
213
- # only if the blob has been modified since the specified date/time. If the blob has not been modified,
215
+ # only if the blob has been modified since the specified date/time. If the blob has not been modified,
214
216
  # the Blob service returns status code 412 (Precondition Failed).
215
217
  # * +:if_unmodified_since+ - String. A DateTime value. Specify this conditional header to renew the lease
216
- # only if the blob has not been modified since the specified date/time. If the blob has been modified,
218
+ # only if the blob has not been modified since the specified date/time. If the blob has been modified,
217
219
  # the Blob service returns status code 412 (Precondition Failed).
218
220
  # * +:if_match+ - String. An ETag value. Specify an ETag value for this conditional header to renew the lease
219
- # only if the blob's ETag value matches the value specified. If the values do not match,
221
+ # only if the blob's ETag value matches the value specified. If the values do not match,
220
222
  # the Blob service returns status code 412 (Precondition Failed).
221
223
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to renew the lease
222
- # only if the blob's ETag value does not match the value specified. If the values are identical,
224
+ # only if the blob's ETag value does not match the value specified. If the values are identical,
223
225
  # the Blob service returns status code 412 (Precondition Failed).
224
226
  #
225
227
  # See http://msdn.microsoft.com/en-us/library/azure/ee691972.aspx
@@ -227,25 +229,25 @@ module Azure::Storage
227
229
  # Returns the renewed lease id
228
230
  #
229
231
  protected
230
- def renew_lease(container, blob, lease, options={})
231
- query = { 'comp' => 'lease' }
232
- Service::StorageService.with_query query, 'timeout', options[:timeout].to_s if options[:timeout]
233
-
234
- if blob
235
- uri = blob_uri(container, blob, query)
236
- else
237
- uri = container_uri(container, query)
238
- end
232
+ def renew_lease(container, blob, lease, options = {})
233
+ query = { "comp" => "lease" }
234
+ Service::StorageService.with_query query, "timeout", options[:timeout].to_s if options[:timeout]
235
+
236
+ if blob
237
+ uri = blob_uri(container, blob, query)
238
+ else
239
+ uri = container_uri(container, query)
240
+ end
239
241
 
240
- headers = Service::StorageService.common_headers
241
- Service::StorageService.with_header headers, 'x-ms-lease-action', 'renew'
242
- Service::StorageService.with_header headers, 'x-ms-lease-id', lease
243
- add_blob_conditional_headers options, headers
242
+ headers = Service::StorageService.common_headers
243
+ Service::StorageService.with_header headers, "x-ms-lease-action", "renew"
244
+ Service::StorageService.with_header headers, "x-ms-lease-id", lease
245
+ add_blob_conditional_headers options, headers
246
+
247
+ response = call(:put, uri, nil, headers, options)
248
+ response.headers["x-ms-lease-id"]
249
+ end
244
250
 
245
- response = call(:put, uri, nil, headers, options)
246
- response.headers['x-ms-lease-id']
247
- end
248
-
249
251
  # Protected: Change the ID of an existing lease.
250
252
  #
251
253
  # ==== Attributes
@@ -261,19 +263,19 @@ module Azure::Storage
261
263
  #
262
264
  # Accepted key/value pairs in options parameter are:
263
265
  # * +:timeout+ - Integer. A timeout in seconds.
264
- # * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
266
+ # * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
265
267
  # in the analytics logs when storage analytics logging is enabled.
266
268
  # * +:if_modified_since+ - String. A DateTime value. Specify this conditional header to change the lease
267
- # only if the blob has been modified since the specified date/time. If the blob has not been modified,
269
+ # only if the blob has been modified since the specified date/time. If the blob has not been modified,
268
270
  # the Blob service returns status code 412 (Precondition Failed).
269
271
  # * +:if_unmodified_since+ - String. A DateTime value. Specify this conditional header to change the lease
270
- # only if the blob has not been modified since the specified date/time. If the blob has been modified,
272
+ # only if the blob has not been modified since the specified date/time. If the blob has been modified,
271
273
  # the Blob service returns status code 412 (Precondition Failed).
272
274
  # * +:if_match+ - String. An ETag value. Specify an ETag value for this conditional header to change the lease
273
- # only if the blob's ETag value matches the value specified. If the values do not match,
275
+ # only if the blob's ETag value matches the value specified. If the values do not match,
274
276
  # the Blob service returns status code 412 (Precondition Failed).
275
277
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to change the lease
276
- # only if the blob's ETag value does not match the value specified. If the values are identical,
278
+ # only if the blob's ETag value does not match the value specified. If the values are identical,
277
279
  # the Blob service returns status code 412 (Precondition Failed).
278
280
  #
279
281
  # See http://msdn.microsoft.com/en-us/library/azure/ee691972.aspx
@@ -282,25 +284,25 @@ module Azure::Storage
282
284
  # to write, or to renew, change, or release the lease.
283
285
  #
284
286
  protected
285
- def change_lease(container, blob, lease, proposed_lease, options={})
286
- query = { 'comp' => 'lease' }
287
- Service::StorageService.with_query query, 'timeout', options[:timeout].to_s if options[:timeout]
288
-
289
- if blob
290
- uri = blob_uri(container, blob, query)
291
- else
292
- uri = container_uri(container, query)
293
- end
287
+ def change_lease(container, blob, lease, proposed_lease, options = {})
288
+ query = { "comp" => "lease" }
289
+ Service::StorageService.with_query query, "timeout", options[:timeout].to_s if options[:timeout]
294
290
 
295
- headers = Service::StorageService.common_headers
296
- Service::StorageService.with_header headers, 'x-ms-lease-action', 'change'
297
- Service::StorageService.with_header headers, 'x-ms-lease-id', lease
298
- Service::StorageService.with_header headers, 'x-ms-proposed-lease-id', proposed_lease
299
- add_blob_conditional_headers options, headers
291
+ if blob
292
+ uri = blob_uri(container, blob, query)
293
+ else
294
+ uri = container_uri(container, query)
295
+ end
300
296
 
301
- response = call(:put, uri, nil, headers, options)
302
- response.headers['x-ms-lease-id']
303
- end
297
+ headers = Service::StorageService.common_headers
298
+ Service::StorageService.with_header headers, "x-ms-lease-action", "change"
299
+ Service::StorageService.with_header headers, "x-ms-lease-id", lease
300
+ Service::StorageService.with_header headers, "x-ms-proposed-lease-id", proposed_lease
301
+ add_blob_conditional_headers options, headers
302
+
303
+ response = call(:put, uri, nil, headers, options)
304
+ response.headers["x-ms-lease-id"]
305
+ end
304
306
 
305
307
  # Protected: Releases the lease. The lease may be released if the lease ID specified on the request matches that
306
308
  # associated with the container or blob. Releasing the lease allows another client to immediately acquire the lease for
@@ -317,19 +319,19 @@ module Azure::Storage
317
319
  #
318
320
  # Accepted key/value pairs in options parameter are:
319
321
  # * +:timeout+ - Integer. A timeout in seconds.
320
- # * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
322
+ # * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
321
323
  # in the analytics logs when storage analytics logging is enabled.
322
324
  # * +:if_modified_since+ - String. A DateTime value. Specify this conditional header to release the lease
323
- # only if the blob has been modified since the specified date/time. If the blob has not been modified,
325
+ # only if the blob has been modified since the specified date/time. If the blob has not been modified,
324
326
  # the Blob service returns status code 412 (Precondition Failed).
325
327
  # * +:if_unmodified_since+ - String. A DateTime value. Specify this conditional header to release the lease
326
- # only if the blob has not been modified since the specified date/time. If the blob has been modified,
328
+ # only if the blob has not been modified since the specified date/time. If the blob has been modified,
327
329
  # the Blob service returns status code 412 (Precondition Failed).
328
330
  # * +:if_match+ - String. An ETag value. Specify an ETag value for this conditional header to release the lease
329
- # only if the blob's ETag value matches the value specified. If the values do not match,
331
+ # only if the blob's ETag value matches the value specified. If the values do not match,
330
332
  # the Blob service returns status code 412 (Precondition Failed).
331
333
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to release the lease
332
- # only if the blob's ETag value does not match the value specified. If the values are identical,
334
+ # only if the blob's ETag value does not match the value specified. If the values are identical,
333
335
  # the Blob service returns status code 412 (Precondition Failed).
334
336
  #
335
337
  # See http://msdn.microsoft.com/en-us/library/azure/ee691972.aspx
@@ -337,24 +339,24 @@ module Azure::Storage
337
339
  # Returns nil on success
338
340
  #
339
341
  protected
340
- def release_lease(container, blob, lease, options={})
341
- query = { 'comp' => 'lease' }
342
- Service::StorageService.with_query query, 'timeout', options[:timeout].to_s if options[:timeout]
343
-
344
- if blob
345
- uri = blob_uri(container, blob, query)
346
- else
347
- uri = container_uri(container, query)
348
- end
342
+ def release_lease(container, blob, lease, options = {})
343
+ query = { "comp" => "lease" }
344
+ Service::StorageService.with_query query, "timeout", options[:timeout].to_s if options[:timeout]
345
+
346
+ if blob
347
+ uri = blob_uri(container, blob, query)
348
+ else
349
+ uri = container_uri(container, query)
350
+ end
349
351
 
350
- headers = Service::StorageService.common_headers
351
- Service::StorageService.with_header headers, 'x-ms-lease-action', 'release'
352
- Service::StorageService.with_header headers, 'x-ms-lease-id', lease
353
- add_blob_conditional_headers options, headers
352
+ headers = Service::StorageService.common_headers
353
+ Service::StorageService.with_header headers, "x-ms-lease-action", "release"
354
+ Service::StorageService.with_header headers, "x-ms-lease-id", lease
355
+ add_blob_conditional_headers options, headers
354
356
 
355
- call(:put, uri, nil, headers, options)
356
- nil
357
- end
357
+ call(:put, uri, nil, headers, options)
358
+ nil
359
+ end
358
360
 
359
361
  # Protected: Breaks the lease, if the container or blob has an active lease. Once a lease is broken, it cannot be renewed. Any
360
362
  # authorized request can break the lease; the request is not required to specify a matching lease ID. When a
@@ -383,19 +385,19 @@ module Azure::Storage
383
385
  # If this option is not used, a fixed-duration lease breaks after the remaining lease
384
386
  # period elapses, and an infinite lease breaks immediately.
385
387
  # * +:timeout+ - Integer. A timeout in seconds.
386
- # * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
388
+ # * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
387
389
  # in the analytics logs when storage analytics logging is enabled.
388
390
  # * +:if_modified_since+ - String. A DateTime value. Specify this conditional header to acquire the lease
389
- # only if the blob has been modified since the specified date/time. If the blob has not been modified,
391
+ # only if the blob has been modified since the specified date/time. If the blob has not been modified,
390
392
  # the Blob service returns status code 412 (Precondition Failed).
391
393
  # * +:if_unmodified_since+ - String. A DateTime value. Specify this conditional header to acquire the lease
392
- # only if the blob has not been modified since the specified date/time. If the blob has been modified,
394
+ # only if the blob has not been modified since the specified date/time. If the blob has been modified,
393
395
  # the Blob service returns status code 412 (Precondition Failed).
394
396
  # * +:if_match+ - String. An ETag value. Specify an ETag value for this conditional header to acquire the lease
395
- # only if the blob's ETag value matches the value specified. If the values do not match,
397
+ # only if the blob's ETag value matches the value specified. If the values do not match,
396
398
  # the Blob service returns status code 412 (Precondition Failed).
397
399
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to acquire the lease
398
- # only if the blob's ETag value does not match the value specified. If the values are identical,
400
+ # only if the blob's ETag value does not match the value specified. If the values are identical,
399
401
  # the Blob service returns status code 412 (Precondition Failed).
400
402
  #
401
403
  # See http://msdn.microsoft.com/en-us/library/azure/ee691972.aspx
@@ -405,25 +407,25 @@ module Azure::Storage
405
407
  # is immediate, 0 is returned.
406
408
  #
407
409
  protected
408
- def break_lease(container, blob, options={})
409
- query = { 'comp' => 'lease' }
410
- Service::StorageService.with_query query, 'timeout', options[:timeout].to_s if options[:timeout]
411
-
412
- if blob
413
- uri = blob_uri(container, blob, query)
414
- else
415
- uri = container_uri(container, query)
416
- end
410
+ def break_lease(container, blob, options = {})
411
+ query = { "comp" => "lease" }
412
+ Service::StorageService.with_query query, "timeout", options[:timeout].to_s if options[:timeout]
417
413
 
418
- headers = Service::StorageService.common_headers
419
- Service::StorageService.with_header headers, 'x-ms-lease-action', 'break'
420
- Service::StorageService.with_header headers, 'x-ms-lease-break-period', options[:break_period].to_s if options[:break_period]
421
- add_blob_conditional_headers options, headers
414
+ if blob
415
+ uri = blob_uri(container, blob, query)
416
+ else
417
+ uri = container_uri(container, query)
418
+ end
419
+
420
+ headers = Service::StorageService.common_headers
421
+ Service::StorageService.with_header headers, "x-ms-lease-action", "break"
422
+ Service::StorageService.with_header headers, "x-ms-lease-break-period", options[:break_period].to_s if options[:break_period]
423
+ add_blob_conditional_headers options, headers
424
+
425
+ response = call(:put, uri, nil, headers, options)
426
+ response.headers["x-ms-lease-time"].to_i
427
+ end
422
428
 
423
- response = call(:put, uri, nil, headers, options)
424
- response.headers['x-ms-lease-time'].to_i
425
- end
426
-
427
429
  # Protected: Generate the URI for the collection of containers.
428
430
  #
429
431
  # ==== Attributes
@@ -433,11 +435,11 @@ module Azure::Storage
433
435
  # Returns a URI.
434
436
  #
435
437
  protected
436
- def containers_uri(query={})
437
- query = { 'comp' => 'list' }.merge(query)
438
- generate_uri('', query)
439
- end
440
-
438
+ def containers_uri(query = {})
439
+ query = { "comp" => "list" }.merge(query)
440
+ generate_uri("", query)
441
+ end
442
+
441
443
  # Protected: Generate the URI for a specific container.
442
444
  #
443
445
  # ==== Attributes
@@ -448,12 +450,12 @@ module Azure::Storage
448
450
  # Returns a URI.
449
451
  #
450
452
  protected
451
- def container_uri(name, query={})
452
- return name if name.kind_of? ::URI
453
- query = { 'restype' => 'container' }.merge(query)
454
- generate_uri(name, query)
455
- end
456
-
453
+ def container_uri(name, query = {})
454
+ return name if name.kind_of? ::URI
455
+ query = { "restype" => "container" }.merge(query)
456
+ generate_uri(name, query)
457
+ end
458
+
457
459
  # Protected: Generate the URI for a specific Blob.
458
460
  #
459
461
  # ==== Attributes
@@ -465,51 +467,51 @@ module Azure::Storage
465
467
  # Returns a URI.
466
468
  #
467
469
  protected
468
- def blob_uri(container_name, blob_name, query={})
469
- if container_name.nil? || container_name.empty?
470
- path = blob_name
471
- else
472
- path = ::File.join(container_name, blob_name)
470
+ def blob_uri(container_name, blob_name, query = {})
471
+ if container_name.nil? || container_name.empty?
472
+ path = blob_name
473
+ else
474
+ path = ::File.join(container_name, blob_name)
475
+ end
476
+ generate_uri(path, query, true)
473
477
  end
474
- generate_uri(path, query, true)
475
- end
476
-
478
+
477
479
  # Adds conditional header with required condition
478
480
  #
479
481
  # headers - A Hash of HTTP headers
480
482
  # options - A Hash of condition name/value pairs
481
483
  #
482
484
  protected
483
- def add_blob_conditional_headers(options, headers)
484
- return unless options
485
-
486
- # Common conditional headers for blobs: https://msdn.microsoft.com/en-us/library/azure/dd179371.aspx
487
- Service::StorageService.with_header headers, 'If-Modified-Since', options[:if_modified_since]
488
- Service::StorageService.with_header headers, 'If-Unmodified-Since', options[:if_unmodified_since]
489
- Service::StorageService.with_header headers, 'If-Match', options[:if_match]
490
- Service::StorageService.with_header headers, 'If-None-Match', options[:if_none_match]
491
-
492
- # Conditional headers for copying blob
493
- Service::StorageService.with_header headers, 'If-Modified-Since', options[:dest_if_modified_since]
494
- Service::StorageService.with_header headers, 'If-Unmodified-Since', options[:dest_if_unmodified_since]
495
- Service::StorageService.with_header headers, 'If-Match', options[:dest_if_match]
496
- Service::StorageService.with_header headers, 'If-None-Match', options[:dest_if_none_match]
497
- Service::StorageService.with_header headers, 'x-ms-source-if-modified-since', options[:source_if_modified_since]
498
- Service::StorageService.with_header headers, 'x-ms-source-if-unmodified-since', options[:source_if_unmodified_since]
499
- Service::StorageService.with_header headers, 'x-ms-source-if-match', options[:source_if_match]
500
- Service::StorageService.with_header headers, 'x-ms-source-if-none-match', options[:source_if_none_match]
501
-
502
- # Conditional headers for page blob
503
- Service::StorageService.with_header headers, 'x-ms-if-sequence-number-le', options[:if_sequence_number_le]
504
- Service::StorageService.with_header headers, 'x-ms-if-sequence-number-lt', options[:if_sequence_number_lt]
505
- Service::StorageService.with_header headers, 'x-ms-if-sequence-number-eq', options[:if_sequence_number_eq]
506
-
507
- # Conditional headers for append blob
508
- Service::StorageService.with_header headers, 'x-ms-blob-condition-maxsize', options[:max_size]
509
- Service::StorageService.with_header headers, 'x-ms-blob-condition-appendpos', options[:append_position]
510
- end
485
+ def add_blob_conditional_headers(options, headers)
486
+ return unless options
487
+
488
+ # Common conditional headers for blobs: https://msdn.microsoft.com/en-us/library/azure/dd179371.aspx
489
+ Service::StorageService.with_header headers, "If-Modified-Since", options[:if_modified_since]
490
+ Service::StorageService.with_header headers, "If-Unmodified-Since", options[:if_unmodified_since]
491
+ Service::StorageService.with_header headers, "If-Match", options[:if_match]
492
+ Service::StorageService.with_header headers, "If-None-Match", options[:if_none_match]
493
+
494
+ # Conditional headers for copying blob
495
+ Service::StorageService.with_header headers, "If-Modified-Since", options[:dest_if_modified_since]
496
+ Service::StorageService.with_header headers, "If-Unmodified-Since", options[:dest_if_unmodified_since]
497
+ Service::StorageService.with_header headers, "If-Match", options[:dest_if_match]
498
+ Service::StorageService.with_header headers, "If-None-Match", options[:dest_if_none_match]
499
+ Service::StorageService.with_header headers, "x-ms-source-if-modified-since", options[:source_if_modified_since]
500
+ Service::StorageService.with_header headers, "x-ms-source-if-unmodified-since", options[:source_if_unmodified_since]
501
+ Service::StorageService.with_header headers, "x-ms-source-if-match", options[:source_if_match]
502
+ Service::StorageService.with_header headers, "x-ms-source-if-none-match", options[:source_if_none_match]
503
+
504
+ # Conditional headers for page blob
505
+ Service::StorageService.with_header headers, "x-ms-if-sequence-number-le", options[:if_sequence_number_le]
506
+ Service::StorageService.with_header headers, "x-ms-if-sequence-number-lt", options[:if_sequence_number_lt]
507
+ Service::StorageService.with_header headers, "x-ms-if-sequence-number-eq", options[:if_sequence_number_eq]
508
+
509
+ # Conditional headers for append blob
510
+ Service::StorageService.with_header headers, "x-ms-blob-condition-maxsize", options[:max_size]
511
+ Service::StorageService.with_header headers, "x-ms-blob-condition-appendpos", options[:append_position]
512
+ end
511
513
  end
512
514
  end
513
515
  end
514
516
 
515
- Azure::Storage::BlobService = Azure::Storage::Blob::BlobService
517
+ Azure::Storage::BlobService = Azure::Storage::Blob::BlobService