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 +4 -4
- data/lib/azure/storage/blob/append.rb +6 -0
- data/lib/azure/storage/blob/blob.rb +80 -3
- data/lib/azure/storage/blob/blob_service.rb +29 -8
- data/lib/azure/storage/blob/block.rb +22 -2
- data/lib/azure/storage/blob/container.rb +57 -6
- data/lib/azure/storage/blob/page.rb +25 -2
- data/lib/azure/storage/client.rb +10 -10
- data/lib/azure/storage/client_options.rb +6 -3
- data/lib/azure/storage/configurable.rb +50 -17
- data/lib/azure/storage/core/auth/anonymous_signer.rb +44 -0
- data/lib/azure/storage/core/filter/retry_filter.rb +123 -12
- data/lib/azure/storage/default.rb +10 -1
- data/lib/azure/storage/file/directory.rb +13 -3
- data/lib/azure/storage/file/file.rb +17 -4
- data/lib/azure/storage/file/file_service.rb +19 -12
- data/lib/azure/storage/file/share.rb +16 -4
- data/lib/azure/storage/queue/queue_service.rb +26 -13
- data/lib/azure/storage/service/geo_replication.rb +40 -0
- data/lib/azure/storage/service/serialization.rb +26 -0
- data/lib/azure/storage/service/storage_service.rb +144 -20
- data/lib/azure/storage/service/storage_service_stats.rb +39 -0
- data/lib/azure/storage/table/table_service.rb +33 -14
- data/lib/azure/storage/version.rb +1 -1
- metadata +5 -2
@@ -0,0 +1,39 @@
|
|
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
|
+
require "azure/storage/service/geo_replication"
|
27
|
+
|
28
|
+
module Azure::Storage
|
29
|
+
module Service
|
30
|
+
class StorageServiceStats
|
31
|
+
def initialize
|
32
|
+
@geo_replication = GeoReplication.new
|
33
|
+
yield self if block_given?
|
34
|
+
end
|
35
|
+
|
36
|
+
attr_accessor :geo_replication
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -36,7 +36,8 @@ module Azure::Storage
|
|
36
36
|
client_config = options[:client] || Azure::Storage
|
37
37
|
signer = options[:signer] || client_config.signer || Auth::SharedKey.new(client_config.storage_account_name, client_config.storage_access_key)
|
38
38
|
super(signer, client_config.storage_account_name, options, &block)
|
39
|
-
@
|
39
|
+
@storage_service_host[:primary] = client.storage_table_host
|
40
|
+
@storage_service_host[:secondary] = client.storage_table_host true
|
40
41
|
end
|
41
42
|
|
42
43
|
# Public: Creates new table in the storage account
|
@@ -110,14 +111,17 @@ module Azure::Storage
|
|
110
111
|
# * +:timeout+ - Integer. A timeout in seconds.
|
111
112
|
# * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
|
112
113
|
# in the analytics logs when storage analytics logging is enabled.
|
114
|
+
# * +:location_mode+ - LocationMode. Specifies the location mode used to decide
|
115
|
+
# which location the request should be sent to.
|
113
116
|
#
|
114
117
|
# Returns the last updated time for the table
|
115
118
|
def get_table(table_name, options = {})
|
116
119
|
headers = {
|
117
120
|
HeaderConstants::ACCEPT => Table::Serialization.get_accept_string(:full_meta),
|
118
121
|
}
|
119
|
-
|
120
|
-
|
122
|
+
options[:request_location_mode] = RequestLocationMode::PRIMARY_OR_SECONDARY
|
123
|
+
response = call(:get, table_uri(table_name, new_query(options), options), nil, headers, options)
|
124
|
+
Table::Serialization.table_entries_from_json(response.body)
|
121
125
|
rescue => e
|
122
126
|
raise_with_response(e, response)
|
123
127
|
end
|
@@ -136,6 +140,8 @@ module Azure::Storage
|
|
136
140
|
# * +:timeout+ - Integer. A timeout in seconds.
|
137
141
|
# * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
|
138
142
|
# in the analytics logs when storage analytics logging is enabled.
|
143
|
+
# * +:location_mode+ - LocationMode. Specifies the location mode used to decide
|
144
|
+
# which location the request should be sent to.
|
139
145
|
# * +:accept+ - String. Specifies the accepted content-type of the response payload. Possible values are:
|
140
146
|
# :no_meta
|
141
147
|
# :min_meta
|
@@ -147,7 +153,9 @@ module Azure::Storage
|
|
147
153
|
def query_tables(options = {})
|
148
154
|
query = new_query(options)
|
149
155
|
query[TableConstants::NEXT_TABLE_NAME] = options[:next_table_token] if options[:next_table_token]
|
150
|
-
|
156
|
+
|
157
|
+
options[:request_location_mode] = RequestLocationMode::PRIMARY_OR_SECONDARY
|
158
|
+
uri = collection_uri(query, options)
|
151
159
|
|
152
160
|
headers = {
|
153
161
|
HeaderConstants::ACCEPT => Table::Serialization.get_accept_string(options[:accept]),
|
@@ -175,6 +183,8 @@ module Azure::Storage
|
|
175
183
|
# * +:timeout+ - Integer. A timeout in seconds.
|
176
184
|
# * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
|
177
185
|
# in the analytics logs when storage analytics logging is enabled.
|
186
|
+
# * +:location_mode+ - LocationMode. Specifies the location mode used to decide
|
187
|
+
# which location the request should be sent to.
|
178
188
|
#
|
179
189
|
# See http://msdn.microsoft.com/en-us/library/azure/jj159100
|
180
190
|
#
|
@@ -183,7 +193,8 @@ module Azure::Storage
|
|
183
193
|
query = new_query(options)
|
184
194
|
query[QueryStringConstants::COMP] = QueryStringConstants::ACL
|
185
195
|
|
186
|
-
|
196
|
+
options[:request_location_mode] = RequestLocationMode::PRIMARY_OR_SECONDARY
|
197
|
+
response = call(:get, generate_uri(table_name, query, options), nil, { "x-ms-version" => "2012-02-12" }, options)
|
187
198
|
|
188
199
|
signed_identifiers = []
|
189
200
|
signed_identifiers = Table::Serialization.signed_identifiers_from_xml response.body unless response.body == nil || response.body.length < 1
|
@@ -247,7 +258,7 @@ module Azure::Storage
|
|
247
258
|
# Returns a Azure::Storage::Entity::Table::Entity
|
248
259
|
def insert_entity(table_name, entity_values, options = {})
|
249
260
|
body = Table::Serialization.hash_to_json(entity_values)
|
250
|
-
time = EdmType::to_edm_time(Time.now)
|
261
|
+
#time = EdmType::to_edm_time(Time.now)
|
251
262
|
headers = {
|
252
263
|
HeaderConstants::ACCEPT => Table::Serialization.get_accept_string(options[:accept])
|
253
264
|
}
|
@@ -278,6 +289,8 @@ module Azure::Storage
|
|
278
289
|
# * +:timeout+ - Integer. A timeout in seconds.
|
279
290
|
# * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
|
280
291
|
# in the analytics logs when storage analytics logging is enabled.
|
292
|
+
# * +:location_mode+ - LocationMode. Specifies the location mode used to decide
|
293
|
+
# which location the request should be sent to.
|
281
294
|
# * +:accept+ - String. Specifies the accepted content-type of the response payload. Possible values are:
|
282
295
|
# :no_meta
|
283
296
|
# :min_meta
|
@@ -294,7 +307,8 @@ module Azure::Storage
|
|
294
307
|
query[QueryStringConstants::NEXT_PARTITION_KEY] = options[:continuation_token][:next_partition_key] if options[:continuation_token] && options[:continuation_token][:next_partition_key]
|
295
308
|
query[QueryStringConstants::NEXT_ROW_KEY] = options[:continuation_token][:next_row_key] if options[:continuation_token] && options[:continuation_token][:next_row_key]
|
296
309
|
|
297
|
-
|
310
|
+
options[:request_location_mode] = RequestLocationMode::PRIMARY_OR_SECONDARY
|
311
|
+
uri = entities_uri(table_name, options[:partition_key], options[:row_key], query, options)
|
298
312
|
|
299
313
|
headers = {
|
300
314
|
HeaderConstants::ACCEPT => Table::Serialization.get_accept_string(options[:accept])
|
@@ -484,6 +498,8 @@ module Azure::Storage
|
|
484
498
|
# * +:timeout+ - Integer. A timeout in seconds.
|
485
499
|
# * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
|
486
500
|
# in the analytics logs when storage analytics logging is enabled.
|
501
|
+
# * +:location_mode+ - LocationMode. Specifies the location mode used to decide
|
502
|
+
# which location the request should be sent to.
|
487
503
|
#
|
488
504
|
# See http://msdn.microsoft.com/en-us/library/azure/dd894038
|
489
505
|
#
|
@@ -496,7 +512,8 @@ module Azure::Storage
|
|
496
512
|
}
|
497
513
|
|
498
514
|
body = batch.to_body
|
499
|
-
|
515
|
+
options[:request_location_mode] = RequestLocationMode::PRIMARY_OR_SECONDARY
|
516
|
+
response = call(:post, generate_uri("/$batch", new_query(options), options), body, headers, options, true)
|
500
517
|
batch.parse_response(response)
|
501
518
|
rescue => e
|
502
519
|
raise_with_response(e, response)
|
@@ -517,6 +534,8 @@ module Azure::Storage
|
|
517
534
|
# * +:timeout+ - Integer. A timeout in seconds.
|
518
535
|
# * +:request_id+ - String. Provides a client-generated, opaque value with a 1 KB character limit that is recorded
|
519
536
|
# in the analytics logs when storage analytics logging is enabled.
|
537
|
+
# * +:location_mode+ - LocationMode. Specifies the location mode used to decide
|
538
|
+
# which location the request should be sent to.
|
520
539
|
#
|
521
540
|
# Returns an Azure::Storage::Table::Entity instance on success
|
522
541
|
def get_entity(table_name, partition_key, row_key, options = {})
|
@@ -530,8 +549,8 @@ module Azure::Storage
|
|
530
549
|
#
|
531
550
|
# Returns a URI
|
532
551
|
protected
|
533
|
-
def collection_uri(query = {})
|
534
|
-
generate_uri("Tables", query)
|
552
|
+
def collection_uri(query = {}, options = {})
|
553
|
+
generate_uri("Tables", query, options)
|
535
554
|
end
|
536
555
|
|
537
556
|
# Public: Generate the URI for a specific table.
|
@@ -542,9 +561,9 @@ module Azure::Storage
|
|
542
561
|
#
|
543
562
|
# Returns a URI
|
544
563
|
public
|
545
|
-
def table_uri(name, query = {})
|
564
|
+
def table_uri(name, query = {}, options = {})
|
546
565
|
return name if name.kind_of? ::URI
|
547
|
-
generate_uri("Tables('#{name}')", query)
|
566
|
+
generate_uri("Tables('#{name}')", query, options)
|
548
567
|
end
|
549
568
|
|
550
569
|
# Public: Generate the URI for an entity or group of entities in a table.
|
@@ -559,7 +578,7 @@ module Azure::Storage
|
|
559
578
|
#
|
560
579
|
# Returns a URI
|
561
580
|
public
|
562
|
-
def entities_uri(table_name, partition_key = nil, row_key = nil, query = {})
|
581
|
+
def entities_uri(table_name, partition_key = nil, row_key = nil, query = {}, options = {})
|
563
582
|
return table_name if table_name.kind_of? ::URI
|
564
583
|
|
565
584
|
path = if partition_key && row_key
|
@@ -570,7 +589,7 @@ module Azure::Storage
|
|
570
589
|
"%s()" % table_name.encode("UTF-8")
|
571
590
|
end
|
572
591
|
|
573
|
-
uri = generate_uri(path)
|
592
|
+
uri = generate_uri(path, query, options)
|
574
593
|
qs = []
|
575
594
|
if query
|
576
595
|
query.each do | key, val |
|
@@ -29,7 +29,7 @@ module Azure
|
|
29
29
|
class Version
|
30
30
|
# Fields represent the parts defined in http://semver.org/
|
31
31
|
MAJOR = 0 unless defined? MAJOR
|
32
|
-
MINOR =
|
32
|
+
MINOR = 15 unless defined? MINOR
|
33
33
|
UPDATE = 0 unless defined? UPDATE
|
34
34
|
PRE = "preview" unless defined? PRE
|
35
35
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: azure-storage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.15.0.preview
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Microsoft Corporation
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-11-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: azure-core
|
@@ -190,6 +190,7 @@ files:
|
|
190
190
|
- lib/azure/storage/client_options_error.rb
|
191
191
|
- lib/azure/storage/configurable.rb
|
192
192
|
- lib/azure/storage/core.rb
|
193
|
+
- lib/azure/storage/core/auth/anonymous_signer.rb
|
193
194
|
- lib/azure/storage/core/auth/shared_access_signature.rb
|
194
195
|
- lib/azure/storage/core/auth/shared_access_signature_generator.rb
|
195
196
|
- lib/azure/storage/core/auth/shared_access_signature_signer.rb
|
@@ -216,6 +217,7 @@ files:
|
|
216
217
|
- lib/azure/storage/service/cors.rb
|
217
218
|
- lib/azure/storage/service/cors_rule.rb
|
218
219
|
- lib/azure/storage/service/enumeration_results.rb
|
220
|
+
- lib/azure/storage/service/geo_replication.rb
|
219
221
|
- lib/azure/storage/service/logging.rb
|
220
222
|
- lib/azure/storage/service/metrics.rb
|
221
223
|
- lib/azure/storage/service/retention_policy.rb
|
@@ -223,6 +225,7 @@ files:
|
|
223
225
|
- lib/azure/storage/service/signed_identifier.rb
|
224
226
|
- lib/azure/storage/service/storage_service.rb
|
225
227
|
- lib/azure/storage/service/storage_service_properties.rb
|
228
|
+
- lib/azure/storage/service/storage_service_stats.rb
|
226
229
|
- lib/azure/storage/table/auth/shared_key.rb
|
227
230
|
- lib/azure/storage/table/batch.rb
|
228
231
|
- lib/azure/storage/table/batch_response.rb
|