azure-storage 0.14.0.preview → 0.15.0.preview

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9d928e46742461de06b7ea74aba3adfd35076eb6
4
- data.tar.gz: 7c60c44b62b9a09f9bf9ff2f113a16182619e335
3
+ metadata.gz: e5c12c44729bf416e20e2a983f88fce629e58982
4
+ data.tar.gz: d589d29762029eccf660cd0fca41bb2e18b49082
5
5
  SHA512:
6
- metadata.gz: 5cf469aea716d07951b603167cce71a3bf51dfd5142d5431998c68e047bd1b651a7bb6c5b22c5de6ac57b1e0a7c41cafbf2fa823a1043685a02222e30c3b8bf7
7
- data.tar.gz: 7d529320af4adc9026c9714f8a4f7276524b77c98909046d75753c986ce8054b24e91b0ff8892a01ebe669321728d684e0bbc4e285bd6cd0cd8520d83b61f3bf
6
+ metadata.gz: 109b153f84da28f24892241fe953ab93f7c4e6d1664fd4c5ed723000902ac6af508ea5523bb688a5783d6f52a5ceac5dedd00637ea480388fc552f896a59be95
7
+ data.tar.gz: b0186d8eec0537b52ec24647a994813e867dfa6b23b34e9ad69224fe46e4719d46a978130cf24e67480689002f6b743d84a9b35b901a75f80b7957b7cb0681bb
@@ -63,6 +63,8 @@ module Azure::Storage
63
63
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to create a new blob
64
64
  # only if the blob's ETag value does not match the value specified. If the values are identical,
65
65
  # the Blob service returns status code 412 (Precondition Failed).
66
+ # * +:lease_id+ - String. Required if the blob has an active lease. To perform this operation on a blob with an active lease,
67
+ # specify the valid lease ID for this header.
66
68
  #
67
69
  # See http://msdn.microsoft.com/en-us/library/azure/dd179451.aspx
68
70
  #
@@ -92,6 +94,7 @@ module Azure::Storage
92
94
 
93
95
  StorageService.add_metadata_to_headers options[:metadata], headers
94
96
  add_blob_conditional_headers options, headers
97
+ headers["x-ms-lease-id"] = options[:lease_id] if options[:lease_id]
95
98
 
96
99
  # call PutBlob with empty body
97
100
  response = call(:put, uri, nil, headers, options)
@@ -135,6 +138,8 @@ module Azure::Storage
135
138
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to append a block only if
136
139
  # the blob's ETag value does not match the value specified. If the values are identical,
137
140
  # the Blob service returns status code 412 (Precondition Failed).
141
+ # * +:lease_id+ - String. Required if the blob has an active lease. To perform this operation on a blob with an
142
+ # active lease, specify the valid lease ID for this header.
138
143
  #
139
144
  # See http://msdn.microsoft.com/en-us/library/azure/mt427365.aspx
140
145
  #
@@ -150,6 +155,7 @@ module Azure::Storage
150
155
  StorageService.with_header headers, "x-ms-lease-id", options[:lease_id]
151
156
 
152
157
  add_blob_conditional_headers options, headers
158
+ headers["x-ms-lease-id"] = options[:lease_id] if options[:lease_id]
153
159
 
154
160
  response = call(:put, uri, content, headers, options)
155
161
  result = Serialization.blob_from_headers(response.headers)
@@ -61,6 +61,8 @@ module Azure::Storage
61
61
  # * +:timeout+ - Integer. A timeout in seconds.
62
62
  # * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
63
63
  # in the analytics logs when storage analytics logging is enabled.
64
+ # * +:location_mode+ - LocationMode. Specifies the location mode used to decide
65
+ # which location the request should be sent to.
64
66
  # * +:if_modified_since+ - String. A DateTime value. Specify this conditional header to get the blob
65
67
  # only if the blob has been modified since the specified date/time. If the blob has not been modified,
66
68
  # the Blob service returns status code 412 (Precondition Failed).
@@ -73,6 +75,12 @@ module Azure::Storage
73
75
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to get the blob
74
76
  # only if the blob's ETag value does not match the value specified. If the values are identical,
75
77
  # the Blob service returns status code 412 (Precondition Failed).
78
+ # * +:lease_id+ - String. If this header is specified, the operation will be performed only if both of the
79
+ # following conditions are met:
80
+ # - The blob's lease is currently active.
81
+ # - The lease ID specified in the request matches that of the blob.
82
+ # If this header is specified and both of these conditions are not met, the request will fail
83
+ # and the Get Blob operation will fail with status code 412 (Precondition Failed).
76
84
  #
77
85
  # See http://msdn.microsoft.com/en-us/library/azure/dd179440.aspx
78
86
  #
@@ -81,7 +89,9 @@ module Azure::Storage
81
89
  query = {}
82
90
  StorageService.with_query query, "snapshot", options[:snapshot]
83
91
  StorageService.with_query query, "timeout", options[:timeout].to_s if options[:timeout]
84
- uri = blob_uri(container, blob, query)
92
+
93
+ options[:request_location_mode] = RequestLocationMode::PRIMARY_OR_SECONDARY
94
+ uri = blob_uri(container, blob, query, options)
85
95
 
86
96
  headers = StorageService.common_headers
87
97
  options[:start_range] = 0 if options[:end_range] && (not options[:start_range])
@@ -90,6 +100,7 @@ module Azure::Storage
90
100
  StorageService.with_header headers, "x-ms-range-get-content-md5", "true" if options[:get_content_md5]
91
101
  end
92
102
  add_blob_conditional_headers options, headers
103
+ headers["x-ms-lease-id"] = options[:lease_id] if options[:lease_id]
93
104
 
94
105
  response = call(:get, uri, nil, headers, options)
95
106
  result = Serialization.blob_from_headers(response.headers)
@@ -114,6 +125,8 @@ module Azure::Storage
114
125
  # * +:timeout+ - Integer. A timeout in seconds.
115
126
  # * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
116
127
  # in the analytics logs when storage analytics logging is enabled.
128
+ # * +:location_mode+ - LocationMode. Specifies the location mode used to decide
129
+ # which location the request should be sent to.
117
130
  # * +:if_modified_since+ - String. A DateTime value. Specify this conditional header to get the blob properties
118
131
  # only if the blob has been modified since the specified date/time. If the blob has not been modified,
119
132
  # the Blob service returns status code 412 (Precondition Failed).
@@ -126,6 +139,14 @@ module Azure::Storage
126
139
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to get the blob properties
127
140
  # only if the blob's ETag value does not match the value specified. If the values are identical,
128
141
  # the Blob service returns status code 412 (Precondition Failed).
142
+ # * +:lease_id+ - String. If this header is specified, the operation will be performed only if both of the
143
+ # following conditions are met:
144
+ #
145
+ # - The blob's lease is currently active.
146
+ # - The lease ID specified in the request matches that of the blob.
147
+ #
148
+ # If this header is specified and both of these conditions are not met, the request will fail
149
+ # and the Get Blob Properties operation will fail with status code 412 (Precondition Failed).
129
150
  #
130
151
  # See http://msdn.microsoft.com/en-us/library/azure/dd179394.aspx
131
152
  #
@@ -139,8 +160,10 @@ module Azure::Storage
139
160
  unless options.empty?
140
161
  add_blob_conditional_headers options, headers
141
162
  end
163
+ headers["x-ms-lease-id"] = options[:lease_id] if options[:lease_id]
142
164
 
143
- uri = blob_uri(container, blob, query)
165
+ options[:request_location_mode] = RequestLocationMode::PRIMARY_OR_SECONDARY
166
+ uri = blob_uri(container, blob, query, options)
144
167
 
145
168
  response = call(:head, uri, nil, headers, options)
146
169
 
@@ -217,6 +240,8 @@ module Azure::Storage
217
240
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to set the blob properties
218
241
  # only if the blob's ETag value does not match the value specified. If the values are identical,
219
242
  # the Blob service returns status code 412 (Precondition Failed).
243
+ # * +:lease_id+ - String. Required if the blob has an active lease. To perform this operation on a blob with an active
244
+ # lease, specify the valid lease ID for this header.
220
245
  #
221
246
  # Remarks:
222
247
  #
@@ -271,6 +296,7 @@ module Azure::Storage
271
296
  end
272
297
 
273
298
  add_blob_conditional_headers options, headers
299
+ headers["x-ms-lease-id"] = options[:lease_id] if options[:lease_id]
274
300
  end
275
301
 
276
302
  call(:put, uri, nil, headers, options)
@@ -293,6 +319,8 @@ module Azure::Storage
293
319
  # * +:timeout+ - Integer. A timeout in seconds.
294
320
  # * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
295
321
  # in the analytics logs when storage analytics logging is enabled.
322
+ # * +:location_mode+ - LocationMode. Specifies the location mode used to decide
323
+ # which location the request should be sent to.
296
324
  # * +:if_modified_since+ - String. A DateTime value. Specify this conditional header to get the blob metadata
297
325
  # only if the blob has been modified since the specified date/time. If the blob has not been modified,
298
326
  # the Blob service returns status code 412 (Precondition Failed).
@@ -305,6 +333,14 @@ module Azure::Storage
305
333
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to get the blob metadata
306
334
  # only if the blob's ETag value does not match the value specified. If the values are identical,
307
335
  # the Blob service returns status code 412 (Precondition Failed).
336
+ # * +:lease_id+ - String. If this header is specified, the operation will be performed only if both of the
337
+ # following conditions are met:
338
+ #
339
+ # - The blob's lease is currently active.
340
+ # - The lease ID specified in the request matches that of the blob.
341
+ #
342
+ # If this header is specified and both of these conditions are not met, the request will fail
343
+ # and the Get Blob Metadata operation will fail with status code 412 (Precondition Failed).
308
344
  #
309
345
  # See http://msdn.microsoft.com/en-us/library/azure/dd179350.aspx
310
346
  #
@@ -317,9 +353,11 @@ module Azure::Storage
317
353
  headers = StorageService.common_headers
318
354
  unless options.empty?
319
355
  add_blob_conditional_headers options, headers
356
+ headers["x-ms-lease-id"] = options[:lease_id] if options[:lease_id]
320
357
  end
321
358
 
322
- uri = blob_uri(container, blob, query)
359
+ options[:request_location_mode] = RequestLocationMode::PRIMARY_OR_SECONDARY
360
+ uri = blob_uri(container, blob, query, options)
323
361
  response = call(:get, uri, nil, headers, options)
324
362
  result = Serialization.blob_from_headers(response.headers)
325
363
 
@@ -356,6 +394,8 @@ module Azure::Storage
356
394
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to set the blob metadata
357
395
  # only if the blob's ETag value does not match the value specified. If the values are identical,
358
396
  # the Blob service returns status code 412 (Precondition Failed).
397
+ # * +:lease_id+ - String. Required if the blob has an active lease. To perform this operation on a blob with an active
398
+ # lease, specify the valid lease ID for this header.
359
399
  #
360
400
  # See http://msdn.microsoft.com/en-us/library/azure/dd179414.aspx
361
401
  #
@@ -370,6 +410,7 @@ module Azure::Storage
370
410
  StorageService.add_metadata_to_headers metadata, headers
371
411
  unless options.empty?
372
412
  add_blob_conditional_headers options, headers
413
+ headers["x-ms-lease-id"] = options[:lease_id] if options[:lease_id]
373
414
  end
374
415
 
375
416
  call(:put, uri, nil, headers, options)
@@ -407,6 +448,8 @@ module Azure::Storage
407
448
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to acquire the lease
408
449
  # only if the blob's ETag value does not match the value specified. If the values are identical,
409
450
  # the Blob service returns status code 412 (Precondition Failed).
451
+ # * +:origin+ - String. Optional. Specifies the origin from which the request is issued. The presence of this header results
452
+ # in cross-origin resource sharing headers on the response.
410
453
  #
411
454
  # See http://msdn.microsoft.com/en-us/library/azure/ee691972.aspx
412
455
  #
@@ -447,6 +490,8 @@ module Azure::Storage
447
490
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to renew the lease
448
491
  # only if the blob's ETag value does not match the value specified. If the values are identical,
449
492
  # the Blob service returns status code 412 (Precondition Failed).
493
+ # * +:origin+ - String. Optional. Specifies the origin from which the request is issued. The presence of this header results
494
+ # in cross-origin resource sharing headers on the response.
450
495
  # See http://msdn.microsoft.com/en-us/library/azure/ee691972.aspx
451
496
  #
452
497
  # Returns the renewed lease id
@@ -483,6 +528,8 @@ module Azure::Storage
483
528
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to change the lease
484
529
  # only if the blob's ETag value does not match the value specified. If the values are identical,
485
530
  # the Blob service returns status code 412 (Precondition Failed).
531
+ # * +:origin+ - String. Optional. Specifies the origin from which the request is issued. The presence of this header results
532
+ # in cross-origin resource sharing headers on the response.
486
533
  # See http://msdn.microsoft.com/en-us/library/azure/ee691972.aspx
487
534
  #
488
535
  # Returns the changed lease id
@@ -519,6 +566,8 @@ module Azure::Storage
519
566
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to release the lease
520
567
  # only if the blob's ETag value does not match the value specified. If the values are identical,
521
568
  # the Blob service returns status code 412 (Precondition Failed).
569
+ # * +:origin+ - String. Optional. Specifies the origin from which the request is issued. The presence of this header results
570
+ # in cross-origin resource sharing headers on the response.
522
571
  # See http://msdn.microsoft.com/en-us/library/azure/ee691972.aspx
523
572
  #
524
573
  # Returns nil on success
@@ -567,6 +616,8 @@ module Azure::Storage
567
616
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to break the lease
568
617
  # only if the blob's ETag value does not match the value specified. If the values are identical,
569
618
  # the Blob service returns status code 412 (Precondition Failed).
619
+ # * +:origin+ - String. Optional. Specifies the origin from which the request is issued. The presence of this header results
620
+ # in cross-origin resource sharing headers on the response.
570
621
  # See http://msdn.microsoft.com/en-us/library/azure/ee691972.aspx
571
622
  #
572
623
  # Returns an Integer of the remaining lease time. This value is the approximate time remaining in the lease
@@ -603,6 +654,12 @@ module Azure::Storage
603
654
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to create the blob snapshot
604
655
  # only if the blob's ETag value does not match the value specified. If the values are identical,
605
656
  # the Blob service returns status code 412 (Precondition Failed).
657
+ # * +:lease_id+ - String. If this header is specified, the operation will be performed only if both of the
658
+ # following conditions are met:
659
+ # - The blob's lease is currently active.
660
+ # - The lease ID specified in the request matches that of the blob.
661
+ # If this header is specified and both of these conditions are not met, the request will fail
662
+ # and the Snapshot Blob operation will fail with status code 412 (Precondition Failed).
606
663
  #
607
664
  # See http://msdn.microsoft.com/en-us/library/azure/ee691971.aspx
608
665
  #
@@ -617,6 +674,7 @@ module Azure::Storage
617
674
  unless options.empty?
618
675
  StorageService.add_metadata_to_headers(options[:metadata], headers)
619
676
  add_blob_conditional_headers(options, headers)
677
+ headers["x-ms-lease-id"] = options[:lease_id] if options[:lease_id]
620
678
  end
621
679
 
622
680
  response = call(:put, uri, nil, headers, options)
@@ -668,6 +726,13 @@ module Azure::Storage
668
726
  # * +:timeout+ - Integer. A timeout in seconds.
669
727
  # * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
670
728
  # in the analytics logs when storage analytics logging is enabled.
729
+ # * +:lease_id+ - String. Required if the destination blob has an active lease. The lease ID specified for
730
+ # this header must match the lease ID of the destination blob. If the request does not include
731
+ # the lease ID or it is not valid, the operation fails with status code 412 (Precondition Failed).
732
+ # If this header is specified and the destination blob does not currently have an active lease,
733
+ # the operation will also fail with status code 412 (Precondition Failed).
734
+ # In version 2012-02-12 and newer, this value must specify an active, infinite lease for a
735
+ # leased blob. A finite-duration lease ID fails with 412 (Precondition Failed).
671
736
  #
672
737
  # See http://msdn.microsoft.com/en-us/library/azure/dd894037.aspx
673
738
  #
@@ -690,6 +755,7 @@ module Azure::Storage
690
755
  unless options.empty?
691
756
  add_blob_conditional_headers options, headers
692
757
  StorageService.add_metadata_to_headers options[:metadata], headers
758
+ headers["x-ms-lease-id"] = options[:lease_id] if options[:lease_id]
693
759
  end
694
760
 
695
761
  response = call(:put, uri, nil, headers, options)
@@ -741,6 +807,13 @@ module Azure::Storage
741
807
  # * +:timeout+ - Integer. A timeout in seconds.
742
808
  # * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
743
809
  # in the analytics logs when storage analytics logging is enabled.
810
+ # * +:lease_id+ - String. Required if the destination blob has an active lease. The lease ID specified for
811
+ # this header must match the lease ID of the destination blob. If the request does not include
812
+ # the lease ID or it is not valid, the operation fails with status code 412 (Precondition Failed).
813
+ # If this header is specified and the destination blob does not currently have an active lease,
814
+ # the operation will also fail with status code 412 (Precondition Failed).
815
+ # In version 2012-02-12 and newer, this value must specify an active, infinite lease for a
816
+ # leased blob. A finite-duration lease ID fails with 412 (Precondition Failed).
744
817
  #
745
818
  # See http://msdn.microsoft.com/en-us/library/azure/dd894037.aspx
746
819
  #
@@ -830,6 +903,9 @@ module Azure::Storage
830
903
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to create the blob snapshot
831
904
  # only if the blob's ETag value does not match the value specified. If the values are identical,
832
905
  # the Blob service returns status code 412 (Precondition Failed).
906
+ # * +:lease_id+ - String. Required if the blob has an active lease. To perform this operation on a blob with an
907
+ # active lease, specify the valid lease ID for this header. If a valid lease ID is not specified
908
+ # on the request, the operation will fail with status code 403 (Forbidden).
833
909
  #
834
910
  # See http://msdn.microsoft.com/en-us/library/azure/dd179440.aspx
835
911
  #
@@ -846,6 +922,7 @@ module Azure::Storage
846
922
  headers = StorageService.common_headers
847
923
  StorageService.with_header headers, "x-ms-delete-snapshots", options[:delete_snapshots].to_s if options[:delete_snapshots] && options[:snapshot] == nil
848
924
  add_blob_conditional_headers options, headers
925
+ headers["x-ms-lease-id"] = options[:lease_id] if options[:lease_id]
849
926
 
850
927
  call(:delete, uri, nil, headers, options)
851
928
  nil
@@ -44,7 +44,8 @@ module Azure::Storage
44
44
  client_config = options[:client] || Azure::Storage
45
45
  signer = options[:signer] || client_config.signer || Azure::Storage::Core::Auth::SharedKey.new(client_config.storage_account_name, client_config.storage_access_key)
46
46
  super(signer, client_config.storage_account_name, options, &block)
47
- @host = client.storage_blob_host
47
+ @storage_service_host[:primary] = client.storage_blob_host
48
+ @storage_service_host[:secondary] = client.storage_blob_host true
48
49
  end
49
50
 
50
51
  def call(method, uri, body = nil, headers = {}, options = {})
@@ -103,6 +104,9 @@ module Azure::Storage
103
104
  # * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
104
105
  # in the analytics logs when storage analytics logging is enabled.
105
106
  #
107
+ # * +:location_mode+ - LocationMode. Specifies the location mode used to decide
108
+ # which location the request should be sent to.
109
+ #
106
110
  # See: https://msdn.microsoft.com/en-us/library/azure/dd179352.aspx
107
111
  #
108
112
  # NOTE: Metadata requested with the :metadata parameter must have been stored in
@@ -126,7 +130,8 @@ module Azure::Storage
126
130
  StorageService.with_query query, "timeout", options[:timeout].to_s if options[:timeout]
127
131
  end
128
132
 
129
- uri = containers_uri(query)
133
+ options[:request_location_mode] = RequestLocationMode::PRIMARY_OR_SECONDARY
134
+ uri = containers_uri(query, options)
130
135
  response = call(:get, uri, nil, {}, options)
131
136
 
132
137
  Serialization.container_enumeration_results_from_xml(response.body)
@@ -163,6 +168,8 @@ module Azure::Storage
163
168
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to acquire the lease
164
169
  # only if the blob's ETag value does not match the value specified. If the values are identical,
165
170
  # the Blob service returns status code 412 (Precondition Failed).
171
+ # * +:origin+ - String. Optional. Specifies the origin from which the request is issued. The presence of this header results
172
+ # in cross-origin resource sharing headers on the response.
166
173
  #
167
174
  # See http://msdn.microsoft.com/en-us/library/azure/ee691972.aspx
168
175
  #
@@ -187,6 +194,7 @@ module Azure::Storage
187
194
  Service::StorageService.with_header headers, "x-ms-lease-action", "acquire"
188
195
  Service::StorageService.with_header headers, "x-ms-lease-duration", duration.to_s if duration
189
196
  Service::StorageService.with_header headers, "x-ms-proposed-lease-id", options[:proposed_lease_id]
197
+ Service::StorageService.with_header headers, "Origin", options[:origin].to_s if options[:origin]
190
198
  add_blob_conditional_headers options, headers
191
199
 
192
200
  response = call(:put, uri, nil, headers, options)
@@ -223,6 +231,8 @@ module Azure::Storage
223
231
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to renew the lease
224
232
  # only if the blob's ETag value does not match the value specified. If the values are identical,
225
233
  # the Blob service returns status code 412 (Precondition Failed).
234
+ # * +:origin+ - String. Optional. Specifies the origin from which the request is issued. The presence of this header results
235
+ # in cross-origin resource sharing headers on the response.
226
236
  #
227
237
  # See http://msdn.microsoft.com/en-us/library/azure/ee691972.aspx
228
238
  #
@@ -242,6 +252,7 @@ module Azure::Storage
242
252
  headers = Service::StorageService.common_headers
243
253
  Service::StorageService.with_header headers, "x-ms-lease-action", "renew"
244
254
  Service::StorageService.with_header headers, "x-ms-lease-id", lease
255
+ Service::StorageService.with_header headers, "Origin", options[:origin].to_s if options[:origin]
245
256
  add_blob_conditional_headers options, headers
246
257
 
247
258
  response = call(:put, uri, nil, headers, options)
@@ -277,6 +288,8 @@ module Azure::Storage
277
288
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to change the lease
278
289
  # only if the blob's ETag value does not match the value specified. If the values are identical,
279
290
  # the Blob service returns status code 412 (Precondition Failed).
291
+ # * +:origin+ - String. Optional. Specifies the origin from which the request is issued. The presence of this header results
292
+ # in cross-origin resource sharing headers on the response.
280
293
  #
281
294
  # See http://msdn.microsoft.com/en-us/library/azure/ee691972.aspx
282
295
  #
@@ -298,6 +311,7 @@ module Azure::Storage
298
311
  Service::StorageService.with_header headers, "x-ms-lease-action", "change"
299
312
  Service::StorageService.with_header headers, "x-ms-lease-id", lease
300
313
  Service::StorageService.with_header headers, "x-ms-proposed-lease-id", proposed_lease
314
+ Service::StorageService.with_header headers, "Origin", options[:origin].to_s if options[:origin]
301
315
  add_blob_conditional_headers options, headers
302
316
 
303
317
  response = call(:put, uri, nil, headers, options)
@@ -333,6 +347,8 @@ module Azure::Storage
333
347
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to release the lease
334
348
  # only if the blob's ETag value does not match the value specified. If the values are identical,
335
349
  # the Blob service returns status code 412 (Precondition Failed).
350
+ # * +:origin+ - String. Optional. Specifies the origin from which the request is issued. The presence of this header results
351
+ # in cross-origin resource sharing headers on the response.
336
352
  #
337
353
  # See http://msdn.microsoft.com/en-us/library/azure/ee691972.aspx
338
354
  #
@@ -352,6 +368,7 @@ module Azure::Storage
352
368
  headers = Service::StorageService.common_headers
353
369
  Service::StorageService.with_header headers, "x-ms-lease-action", "release"
354
370
  Service::StorageService.with_header headers, "x-ms-lease-id", lease
371
+ Service::StorageService.with_header headers, "Origin", options[:origin].to_s if options[:origin]
355
372
  add_blob_conditional_headers options, headers
356
373
 
357
374
  call(:put, uri, nil, headers, options)
@@ -399,6 +416,8 @@ module Azure::Storage
399
416
  # * +:if_none_match+ - String. An ETag value. Specify an ETag value for this conditional header to acquire the lease
400
417
  # only if the blob's ETag value does not match the value specified. If the values are identical,
401
418
  # the Blob service returns status code 412 (Precondition Failed).
419
+ # * +:origin+ - String. Optional. Specifies the origin from which the request is issued. The presence of this header results
420
+ # in cross-origin resource sharing headers on the response.
402
421
  #
403
422
  # See http://msdn.microsoft.com/en-us/library/azure/ee691972.aspx
404
423
  #
@@ -420,6 +439,7 @@ module Azure::Storage
420
439
  headers = Service::StorageService.common_headers
421
440
  Service::StorageService.with_header headers, "x-ms-lease-action", "break"
422
441
  Service::StorageService.with_header headers, "x-ms-lease-break-period", options[:break_period].to_s if options[:break_period]
442
+ Service::StorageService.with_header headers, "Origin", options[:origin].to_s if options[:origin]
423
443
  add_blob_conditional_headers options, headers
424
444
 
425
445
  response = call(:put, uri, nil, headers, options)
@@ -435,9 +455,9 @@ module Azure::Storage
435
455
  # Returns a URI.
436
456
  #
437
457
  protected
438
- def containers_uri(query = {})
458
+ def containers_uri(query = {}, options = {})
439
459
  query = { "comp" => "list" }.merge(query)
440
- generate_uri("", query)
460
+ generate_uri("", query, options)
441
461
  end
442
462
 
443
463
  # Protected: Generate the URI for a specific container.
@@ -450,10 +470,10 @@ module Azure::Storage
450
470
  # Returns a URI.
451
471
  #
452
472
  protected
453
- def container_uri(name, query = {})
473
+ def container_uri(name, query = {}, options = {})
454
474
  return name if name.kind_of? ::URI
455
475
  query = { "restype" => "container" }.merge(query)
456
- generate_uri(name, query)
476
+ generate_uri(name, query, options)
457
477
  end
458
478
 
459
479
  # Protected: Generate the URI for a specific Blob.
@@ -467,13 +487,14 @@ module Azure::Storage
467
487
  # Returns a URI.
468
488
  #
469
489
  protected
470
- def blob_uri(container_name, blob_name, query = {})
490
+ def blob_uri(container_name, blob_name, query = {}, options = {})
471
491
  if container_name.nil? || container_name.empty?
472
492
  path = blob_name
473
493
  else
474
494
  path = ::File.join(container_name, blob_name)
475
495
  end
476
- generate_uri(path, query, true)
496
+ options = { encode: true }.merge(options)
497
+ generate_uri(path, query, options)
477
498
  end
478
499
 
479
500
  # Adds conditional header with required condition