azure-storage 0.10.0.preview → 0.10.1.preview
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/azure/storage/autoload.rb +2 -4
- data/lib/azure/storage/blob/blob_service.rb +2 -5
- data/lib/azure/storage/blob/container.rb +5 -1
- data/lib/azure/storage/client.rb +4 -4
- data/lib/azure/storage/{core/client_options.rb → client_options.rb} +1 -2
- data/lib/azure/storage/{core/client_options_error.rb → client_options_error.rb} +2 -2
- data/lib/azure/storage/core.rb +1 -1
- data/lib/azure/storage/core/auth/shared_access_signature.rb +3 -2
- data/lib/azure/storage/core/auth/shared_access_signature_generator.rb +31 -18
- data/lib/azure/storage/core/auth/shared_access_signature_signer.rb +1 -1
- data/lib/azure/storage/core/auth/shared_key.rb +4 -72
- data/lib/azure/storage/core/autoload.rb +17 -8
- data/lib/azure/storage/core/error.rb +2 -8
- data/lib/azure/storage/core/filter/exponential_retry_filter.rb +62 -0
- data/lib/azure/storage/core/{auth/shared_key_lite.rb → filter/linear_retry_filter.rb} +27 -29
- data/lib/azure/storage/core/filter/retry_filter.rb +172 -0
- data/lib/azure/storage/core/http_client.rb +1 -1
- data/lib/azure/storage/core/utility.rb +2 -10
- data/lib/azure/storage/{core/constants.rb → default.rb} +0 -0
- data/lib/azure/storage/service/storage_service.rb +7 -2
- data/lib/azure/storage/table/auth/shared_key.rb +2 -2
- data/lib/azure/storage/table/batch.rb +1 -1
- data/lib/azure/storage/table/table_service.rb +11 -11
- data/lib/azure/storage/version.rb +1 -1
- metadata +24 -18
- data/lib/azure/storage/core/auth/signer.rb +0 -60
- data/lib/azure/storage/core/filtered_service.rb +0 -54
- data/lib/azure/storage/core/http/debug_filter.rb +0 -45
- data/lib/azure/storage/core/http/http_error.rb +0 -95
- data/lib/azure/storage/core/http/http_filter.rb +0 -62
- data/lib/azure/storage/core/http/http_request.rb +0 -182
- data/lib/azure/storage/core/http/http_response.rb +0 -105
- data/lib/azure/storage/core/http/retry_policy.rb +0 -83
- data/lib/azure/storage/core/http/signer_filter.rb +0 -42
- data/lib/azure/storage/core/service.rb +0 -55
- data/lib/azure/storage/core/signed_service.rb +0 -54
@@ -21,35 +21,33 @@
|
|
21
21
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
22
22
|
# THE SOFTWARE.
|
23
23
|
#--------------------------------------------------------------------------
|
24
|
-
require
|
24
|
+
require 'azure/core'
|
25
|
+
require 'azure/core/http/retry_policy'
|
25
26
|
|
26
|
-
module Azure::Storage
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
canonicalized_resource(uri)
|
51
|
-
].join("\n")
|
52
|
-
end
|
27
|
+
module Azure::Storage::Core::Filter
|
28
|
+
class LinearRetryPolicyFilter < RetryPolicyFilter
|
29
|
+
def initialize(retry_count=nil, retry_interval=nil)
|
30
|
+
@retry_count = retry_count || LinearRetryPolicyFilter::DEFAULT_RETRY_COUNT
|
31
|
+
@retry_interval = retry_interval || LinearRetryPolicyFilter::DEFAULT_RETRY_INTERVAL
|
32
|
+
|
33
|
+
super @retry_count, @retry_interval
|
34
|
+
end
|
35
|
+
|
36
|
+
DEFAULT_RETRY_COUNT = 3
|
37
|
+
DEFAULT_RETRY_INTERVAL = 30
|
38
|
+
|
39
|
+
# Overrides the base class implementation of call to determine
|
40
|
+
# how the HTTP request should continue retrying
|
41
|
+
#
|
42
|
+
# retry_data - Hash. Stores stateful retry data
|
43
|
+
#
|
44
|
+
# The retry_data is a Hash which can be used to store
|
45
|
+
# stateful data about the request execution context (such as an
|
46
|
+
# incrementing counter, timestamp, etc). The retry_data object
|
47
|
+
# will be the same instance throughout the lifetime of the request
|
48
|
+
def apply_retry_policy(retry_data)
|
49
|
+
retry_data[:count] = retry_data[:count] == nil ? 1 : retry_data[:count] + 1
|
50
|
+
retry_data[:interval] = @retry_interval
|
53
51
|
end
|
54
52
|
end
|
55
|
-
end
|
53
|
+
end
|
@@ -0,0 +1,172 @@
|
|
1
|
+
#-------------------------------------------------------------------------
|
2
|
+
# # Copyright (c) Microsoft and contributors. All rights reserved.
|
3
|
+
#
|
4
|
+
# The MIT License(MIT)
|
5
|
+
|
6
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
|
+
# of this software and associated documentation files(the "Software"), to deal
|
8
|
+
# in the Software without restriction, including without limitation the rights
|
9
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
|
10
|
+
# copies of the Software, and to permit persons to whom the Software is
|
11
|
+
# furnished to do so, subject to the following conditions :
|
12
|
+
|
13
|
+
# The above copyright notice and this permission notice shall be included in
|
14
|
+
# all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
|
19
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
20
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
21
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
22
|
+
# THE SOFTWARE.
|
23
|
+
#--------------------------------------------------------------------------
|
24
|
+
require 'azure/core'
|
25
|
+
require 'azure/core/http/retry_policy'
|
26
|
+
|
27
|
+
module Azure::Storage::Core::Filter
|
28
|
+
class RetryPolicyFilter < Azure::Core::Http::RetryPolicy
|
29
|
+
def initialize(retry_count=nil, retry_interval=nil)
|
30
|
+
@retry_count = retry_count
|
31
|
+
@retry_interval = retry_interval
|
32
|
+
|
33
|
+
super &:should_retry?
|
34
|
+
end
|
35
|
+
|
36
|
+
attr_reader :retry_count,
|
37
|
+
:retry_interval
|
38
|
+
|
39
|
+
# Overrides the base class implementation of call to determine
|
40
|
+
# whether to retry the operation
|
41
|
+
#
|
42
|
+
# response - HttpResponse. The response from the active request
|
43
|
+
# retry_data - Hash. Stores stateful retry data
|
44
|
+
def should_retry?(response, retry_data)
|
45
|
+
apply_retry_policy retry_data
|
46
|
+
retry_data[:retryable] = retry_data[:count] <= @retry_count
|
47
|
+
return false unless retry_data[:retryable]
|
48
|
+
|
49
|
+
should_retry_on_local_error? retry_data
|
50
|
+
should_retry_on_error? response, retry_data
|
51
|
+
return false unless retry_data[:retryable]
|
52
|
+
|
53
|
+
adjust_retry_parameter retry_data
|
54
|
+
end
|
55
|
+
|
56
|
+
# Apply the retry policy to determine how the HTTP request should continue retrying
|
57
|
+
#
|
58
|
+
# retry_data - Hash. Stores stateful retry data
|
59
|
+
#
|
60
|
+
# The retry_data is a Hash which can be used to store
|
61
|
+
# stateful data about the request execution context (such as an
|
62
|
+
# incrementing counter, timestamp, etc). The retry_data object
|
63
|
+
# will be the same instance throughout the lifetime of the request
|
64
|
+
#
|
65
|
+
# Alternatively, a subclass could override this method.
|
66
|
+
def apply_retry_policy(retry_data)
|
67
|
+
end
|
68
|
+
|
69
|
+
# Determines if the HTTP request should continue retrying
|
70
|
+
#
|
71
|
+
# retry_data - Hash. Stores stateful retry data
|
72
|
+
#
|
73
|
+
# The retry_data is a Hash which can be used to store
|
74
|
+
# stateful data about the request execution context (such as an
|
75
|
+
# incrementing counter, timestamp, etc). The retry_data object
|
76
|
+
# will be the same instance throughout the lifetime of the request.
|
77
|
+
def should_retry_on_local_error?(retry_data)
|
78
|
+
unless retry_data[:error]
|
79
|
+
retry_data[:retryable] = true;
|
80
|
+
return true
|
81
|
+
end
|
82
|
+
|
83
|
+
if retry_data[:error].inspect.include?('SocketError: Hostname not known')
|
84
|
+
# Retry on local DNS resolving
|
85
|
+
# When uses resolv-replace.rb to replace the libc resolver
|
86
|
+
# Reference:
|
87
|
+
# https://makandracards.com/ninjaconcept/30815-fixing-socketerror-getaddrinfo-name-or-service-not-known-with-ruby-s-resolv-replace-rb
|
88
|
+
# http://www.subelsky.com/2014/05/fixing-socketerror-getaddrinfo-name-or.html
|
89
|
+
retry_data[:retryable] = true;
|
90
|
+
elsif retry_data[:error].inspect.include?('getaddrinfo: Name or service not known')
|
91
|
+
# When uses the default resolver
|
92
|
+
retry_data[:retryable] = true;
|
93
|
+
elsif retry_data[:error].inspect.include?('Errno::EACCES')
|
94
|
+
retry_data[:retryable] = false;
|
95
|
+
elsif retry_data[:error].inspect.include?('NOSUPPORT')
|
96
|
+
retry_data[:retryable] = false;
|
97
|
+
end
|
98
|
+
|
99
|
+
retry_data[:retryable]
|
100
|
+
end
|
101
|
+
|
102
|
+
# Determines if the HTTP request should continue retrying
|
103
|
+
#
|
104
|
+
# response - Azure::Core::Http::HttpResponse. The response from the active request
|
105
|
+
# retry_data - Hash. Stores stateful retry data
|
106
|
+
#
|
107
|
+
# The retry_data is a Hash which can be used to store
|
108
|
+
# stateful data about the request execution context (such as an
|
109
|
+
# incrementing counter, timestamp, etc). The retry_data object
|
110
|
+
# will be the same instance throughout the lifetime of the request.
|
111
|
+
def should_retry_on_error?(response, retry_data)
|
112
|
+
unless response
|
113
|
+
retry_data[:retryable] = false unless retry_data[:error]
|
114
|
+
return retry_data[:retryable]
|
115
|
+
end
|
116
|
+
|
117
|
+
# If a request sent to the secondary location fails with 404 (Not Found), it is possible
|
118
|
+
# that the resource replication is not finished yet. So, in case of 404 only in the secondary
|
119
|
+
# location, the failure should still be retryable.
|
120
|
+
secondary_not_found = (retry_data[:current_location] === Azure::Storage::RequestLocationMode::SECONDARY_ONLY) && response.status_code === 404;
|
121
|
+
|
122
|
+
if secondary_not_found
|
123
|
+
retry_data[:status_code] = 500
|
124
|
+
else
|
125
|
+
if (response.status_code)
|
126
|
+
retry_data[:status_code] = response.status_code
|
127
|
+
else
|
128
|
+
retry_data[:status_code] = nil
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
# Non-timeout Cases
|
133
|
+
if (retry_data[:status_code] >= 300 && retry_data[:status_code] != 408)
|
134
|
+
# Always no retry on "not implemented" and "version not supported"
|
135
|
+
if (retry_data[:status_code] == 501 || retry_data[:status_code] == 505)
|
136
|
+
retry_data[:retryable] = false;
|
137
|
+
return false;
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
# When absorb_conditional_errors_on_retry is set (for append blob)
|
142
|
+
if (retry_data[:request_options] && retry_data[:request_options][:absorb_conditional_errors_on_retry])
|
143
|
+
if (retry_data[:status_code] == 412)
|
144
|
+
# When appending block with precondition failure and their was a server error before, we ignore the error.
|
145
|
+
if (retry_data[:last_server_error])
|
146
|
+
retry_data[:error] = nil;
|
147
|
+
retry_data[:retryable] = true;
|
148
|
+
else
|
149
|
+
retry_data[:retryable] = false;
|
150
|
+
end
|
151
|
+
elsif (retry_data[:retryable] && retry_data[:status_code] >= 500 && retry_data[:status_code] < 600)
|
152
|
+
# Retry on the server error
|
153
|
+
retry_data[:retryable] = true;
|
154
|
+
retry_data[:last_server_error] = true;
|
155
|
+
end
|
156
|
+
elsif (retry_data[:status_code] < 500)
|
157
|
+
# No retry on the client error
|
158
|
+
retry_data[:retryable] = false;
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
# Adjust the retry parameter
|
163
|
+
#
|
164
|
+
# retry_data - Hash. Stores stateful retry data
|
165
|
+
def adjust_retry_parameter(retry_data)
|
166
|
+
# TODO: Adjust the retry parameter according to the location and last attempt time
|
167
|
+
sleep retry_data[:interval] if retry_data[:retryable]
|
168
|
+
retry_data[:retryable]
|
169
|
+
end
|
170
|
+
|
171
|
+
end
|
172
|
+
end
|
@@ -22,7 +22,7 @@
|
|
22
22
|
# THE SOFTWARE.
|
23
23
|
#--------------------------------------------------------------------------
|
24
24
|
|
25
|
-
module Azure::Core
|
25
|
+
module Azure::Storage::Core
|
26
26
|
module HttpClient
|
27
27
|
# Returns the http agent based on uri
|
28
28
|
# @param uri [URI|String] the base uri (scheme, host, port) of the http endpoint
|
@@ -34,7 +34,7 @@ if RUBY_VERSION.to_f < 2.0
|
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
|
-
module Azure
|
37
|
+
module Azure::Storage
|
38
38
|
module Error
|
39
39
|
# Azure Error
|
40
40
|
class Error < Azure::Core::Error
|
@@ -204,12 +204,6 @@ end
|
|
204
204
|
|
205
205
|
# Code validate private/public IP acceptable ranges.
|
206
206
|
class IPAddr
|
207
|
-
PRIVATE_RANGES = [
|
208
|
-
IPAddr.new('10.0.0.0/8'),
|
209
|
-
IPAddr.new('172.16.0.0/12'),
|
210
|
-
IPAddr.new('192.168.0.0/16')
|
211
|
-
]
|
212
|
-
|
213
207
|
def private?
|
214
208
|
return false unless self.ipv4?
|
215
209
|
PRIVATE_RANGES.each do |ipr|
|
@@ -249,6 +243,4 @@ class IPAddr
|
|
249
243
|
(IPAddr.new(ip) rescue nil).nil?
|
250
244
|
end
|
251
245
|
end
|
252
|
-
end
|
253
|
-
|
254
|
-
Azure::Loggerx = Azure::Core::Logger
|
246
|
+
end
|
File without changes
|
@@ -22,7 +22,7 @@
|
|
22
22
|
# THE SOFTWARE.
|
23
23
|
#--------------------------------------------------------------------------
|
24
24
|
|
25
|
-
require 'azure/
|
25
|
+
require 'azure/core/signed_service'
|
26
26
|
require 'azure/storage/core'
|
27
27
|
require 'azure/storage/service/storage_service_properties'
|
28
28
|
|
@@ -36,7 +36,12 @@ module Azure::Storage
|
|
36
36
|
# (optional, Default=Azure::Storage::Auth::SharedKey.new)
|
37
37
|
# @param account_name [String] The account name (optional, Default=Azure.config.storage_account_name)
|
38
38
|
# @param options [Azure::Storage::Configurable] the client configuration context
|
39
|
-
def initialize(signer=
|
39
|
+
def initialize(signer=nil, account_name=nil, options = {})
|
40
|
+
options[:client] = Azure::Storage if options[:client] == nil
|
41
|
+
client_config = options[:client]
|
42
|
+
signer = signer || Azure::Storage::Core::Auth::SharedKey.new(
|
43
|
+
client_config.storage_account_name,
|
44
|
+
client_config.storage_access_key)
|
40
45
|
super(signer, account_name, options)
|
41
46
|
end
|
42
47
|
|
@@ -22,12 +22,12 @@
|
|
22
22
|
# THE SOFTWARE.
|
23
23
|
#--------------------------------------------------------------------------
|
24
24
|
require 'cgi'
|
25
|
-
require 'azure/storage/core/auth/
|
25
|
+
require 'azure/storage/core/auth/shared_key'
|
26
26
|
|
27
27
|
module Azure::Storage
|
28
28
|
module Table
|
29
29
|
module Auth
|
30
|
-
class SharedKey <
|
30
|
+
class SharedKey < Core::Auth::SharedKey
|
31
31
|
# The account name
|
32
32
|
attr :account_name
|
33
33
|
|
@@ -23,10 +23,10 @@
|
|
23
23
|
#--------------------------------------------------------------------------
|
24
24
|
require 'uuid'
|
25
25
|
|
26
|
+
require 'azure/core/http/http_error'
|
26
27
|
require 'azure/storage/table/serialization'
|
27
28
|
require 'azure/storage/table/table_service'
|
28
29
|
require 'azure/storage/table/batch_response'
|
29
|
-
require 'azure/storage/core/http/http_error'
|
30
30
|
|
31
31
|
module Azure::Storage
|
32
32
|
module Table
|
@@ -29,7 +29,7 @@ require 'azure/storage/table/entity'
|
|
29
29
|
|
30
30
|
module Azure::Storage
|
31
31
|
module Table
|
32
|
-
class TableService <
|
32
|
+
class TableService < Service::StorageService
|
33
33
|
|
34
34
|
def initialize(options = {})
|
35
35
|
client_config = options[:client] || Azure::Storage
|
@@ -58,7 +58,7 @@ module Azure::Storage
|
|
58
58
|
query = { }
|
59
59
|
query['timeout'] = options[:timeout].to_s if options[:timeout]
|
60
60
|
|
61
|
-
body =
|
61
|
+
body = Table::Serialization.hash_to_entry_xml({"TableName" => table_name}).to_xml
|
62
62
|
call(:post, collection_uri(query), body)
|
63
63
|
nil
|
64
64
|
end
|
@@ -104,7 +104,7 @@ module Azure::Storage
|
|
104
104
|
query["timeout"] = options[:timeout].to_s if options[:timeout]
|
105
105
|
|
106
106
|
response = call(:get, table_uri(table_name, query))
|
107
|
-
results =
|
107
|
+
results = Table::Serialization.hash_from_entry_xml(response.body)
|
108
108
|
results[:updated]
|
109
109
|
end
|
110
110
|
|
@@ -131,7 +131,7 @@ module Azure::Storage
|
|
131
131
|
uri = collection_uri(query)
|
132
132
|
|
133
133
|
response = call(:get, uri)
|
134
|
-
entries =
|
134
|
+
entries = Table::Serialization.entries_from_feed_xml(response.body) || []
|
135
135
|
|
136
136
|
values = Azure::Service::EnumerationResults.new(entries)
|
137
137
|
values.continuation_token = response.headers["x-ms-continuation-NextTableName"]
|
@@ -160,7 +160,7 @@ module Azure::Storage
|
|
160
160
|
response = call(:get, generate_uri(table_name, query), nil, {'x-ms-version' => '2012-02-12'})
|
161
161
|
|
162
162
|
signed_identifiers = []
|
163
|
-
signed_identifiers =
|
163
|
+
signed_identifiers = Table::Serialization.signed_identifiers_from_xml response.body unless response.body == nil or response.body.length < 1
|
164
164
|
signed_identifiers
|
165
165
|
end
|
166
166
|
|
@@ -186,7 +186,7 @@ module Azure::Storage
|
|
186
186
|
|
187
187
|
uri = generate_uri(table_name, query)
|
188
188
|
body = nil
|
189
|
-
body =
|
189
|
+
body = Table::Serialization.signed_identifiers_to_xml options[:signed_identifiers] if options[:signed_identifiers] && options[:signed_identifiers].length > 0
|
190
190
|
|
191
191
|
call(:put, uri, body, {'x-ms-version' => '2012-02-12'})
|
192
192
|
nil
|
@@ -210,14 +210,14 @@ module Azure::Storage
|
|
210
210
|
#
|
211
211
|
# Returns a Azure::Storage::Entity::Table::Entity
|
212
212
|
def insert_entity(table_name, entity_values, options={})
|
213
|
-
body =
|
213
|
+
body = Table::Serialization.hash_to_entry_xml(entity_values).to_xml
|
214
214
|
|
215
215
|
query = { }
|
216
216
|
query['timeout'] = options[:timeout].to_s if options[:timeout]
|
217
217
|
|
218
218
|
response = call(:post, entities_uri(table_name, nil, nil, query), body)
|
219
219
|
|
220
|
-
result =
|
220
|
+
result = Table::Serialization.hash_from_entry_xml(response.body)
|
221
221
|
|
222
222
|
Entity.new do |entity|
|
223
223
|
entity.table = table_name
|
@@ -262,7 +262,7 @@ module Azure::Storage
|
|
262
262
|
|
263
263
|
entities = Azure::Service::EnumerationResults.new
|
264
264
|
|
265
|
-
results = (options[:partition_key] and options[:row_key]) ? [
|
265
|
+
results = (options[:partition_key] and options[:row_key]) ? [Table::Serialization.hash_from_entry_xml(response.body)] : Table::Serialization.entries_from_feed_xml(response.body)
|
266
266
|
|
267
267
|
results.each do |result|
|
268
268
|
entity = Entity.new do |e|
|
@@ -315,7 +315,7 @@ module Azure::Storage
|
|
315
315
|
headers = {}
|
316
316
|
headers["If-Match"] = if_match || "*" unless options[:create_if_not_exists]
|
317
317
|
|
318
|
-
body =
|
318
|
+
body = Table::Serialization.hash_to_entry_xml(entity_values).to_xml
|
319
319
|
|
320
320
|
response = call(:put, uri, body, headers)
|
321
321
|
response.headers["etag"]
|
@@ -353,7 +353,7 @@ module Azure::Storage
|
|
353
353
|
headers = { "X-HTTP-Method"=> "MERGE" }
|
354
354
|
headers["If-Match"] = if_match || "*" unless options[:create_if_not_exists]
|
355
355
|
|
356
|
-
body =
|
356
|
+
body = Table::Serialization.hash_to_entry_xml(entity_values).to_xml
|
357
357
|
|
358
358
|
response = call(:post, uri, body, headers)
|
359
359
|
response.headers["etag"]
|
@@ -28,7 +28,7 @@ module Azure
|
|
28
28
|
# Fields represent the parts defined in http://semver.org/
|
29
29
|
MAJOR = 0 unless defined? MAJOR
|
30
30
|
MINOR = 10 unless defined? MINOR
|
31
|
-
UPDATE =
|
31
|
+
UPDATE = 1 unless defined? UPDATE
|
32
32
|
PRE = 'preview' unless defined? PRE
|
33
33
|
|
34
34
|
class << self
|
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.10.
|
4
|
+
version: 0.10.1.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: 2016-
|
11
|
+
date: 2016-05-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '2.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: azure-core
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0.1'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.1'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: faraday
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -235,7 +249,7 @@ dependencies:
|
|
235
249
|
- !ruby/object:Gem::Version
|
236
250
|
version: '0.8'
|
237
251
|
description: Microsoft Azure Storage Client Library for Ruby
|
238
|
-
email:
|
252
|
+
email: ascl@microsoft.com
|
239
253
|
executables: []
|
240
254
|
extensions: []
|
241
255
|
extra_rdoc_files: []
|
@@ -250,32 +264,23 @@ files:
|
|
250
264
|
- lib/azure/storage/blob/page.rb
|
251
265
|
- lib/azure/storage/blob/serialization.rb
|
252
266
|
- lib/azure/storage/client.rb
|
267
|
+
- lib/azure/storage/client_options.rb
|
268
|
+
- lib/azure/storage/client_options_error.rb
|
253
269
|
- lib/azure/storage/configurable.rb
|
254
270
|
- lib/azure/storage/core.rb
|
255
271
|
- lib/azure/storage/core/auth/shared_access_signature.rb
|
256
272
|
- lib/azure/storage/core/auth/shared_access_signature_generator.rb
|
257
273
|
- lib/azure/storage/core/auth/shared_access_signature_signer.rb
|
258
274
|
- lib/azure/storage/core/auth/shared_key.rb
|
259
|
-
- lib/azure/storage/core/auth/shared_key_lite.rb
|
260
|
-
- lib/azure/storage/core/auth/signer.rb
|
261
275
|
- lib/azure/storage/core/autoload.rb
|
262
|
-
- lib/azure/storage/core/client_options.rb
|
263
|
-
- lib/azure/storage/core/client_options_error.rb
|
264
|
-
- lib/azure/storage/core/constants.rb
|
265
276
|
- lib/azure/storage/core/error.rb
|
266
|
-
- lib/azure/storage/core/
|
267
|
-
- lib/azure/storage/core/
|
268
|
-
- lib/azure/storage/core/
|
269
|
-
- lib/azure/storage/core/http/http_filter.rb
|
270
|
-
- lib/azure/storage/core/http/http_request.rb
|
271
|
-
- lib/azure/storage/core/http/http_response.rb
|
272
|
-
- lib/azure/storage/core/http/retry_policy.rb
|
273
|
-
- lib/azure/storage/core/http/signer_filter.rb
|
277
|
+
- lib/azure/storage/core/filter/exponential_retry_filter.rb
|
278
|
+
- lib/azure/storage/core/filter/linear_retry_filter.rb
|
279
|
+
- lib/azure/storage/core/filter/retry_filter.rb
|
274
280
|
- lib/azure/storage/core/http_client.rb
|
275
|
-
- lib/azure/storage/core/service.rb
|
276
|
-
- lib/azure/storage/core/signed_service.rb
|
277
281
|
- lib/azure/storage/core/sr.rb
|
278
282
|
- lib/azure/storage/core/utility.rb
|
283
|
+
- lib/azure/storage/default.rb
|
279
284
|
- lib/azure/storage/queue/message.rb
|
280
285
|
- lib/azure/storage/queue/queue.rb
|
281
286
|
- lib/azure/storage/queue/queue_service.rb
|
@@ -327,3 +332,4 @@ signing_key:
|
|
327
332
|
specification_version: 4
|
328
333
|
summary: Official Ruby client library to consume Azure Storage services
|
329
334
|
test_files: []
|
335
|
+
has_rdoc:
|