azure-storage 0.10.0.preview → 0.10.1.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/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:
|