google-cloud-storage 1.36.2 → 1.37.0

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
  SHA256:
3
- metadata.gz: 4c20986682a3f95c8fbea7f0132f5196d35f7978ba2b873530332a9709d3316c
4
- data.tar.gz: 14de14960774f46eeaf07bbf9d8188228441dfdd8cb7b2c9a3649869f0909258
3
+ metadata.gz: 4978faf0cccd7a12e58085b8a5eb44a0bdfb54446c17e5c377ef66e443a93671
4
+ data.tar.gz: 7487e0b96eabba4902ebc21992b651e08261523175d49c4477e820e941757be3
5
5
  SHA512:
6
- metadata.gz: 95d9b766685011b4421ff24fb2ceaa8aa42a8c89e9ad12aab6ca3e496bf01788ef9bd191554acefa9e9d2be0154292fd56d78953bf731446b65a20c97cc3ee51
7
- data.tar.gz: b8748e786883a80b98fa77c927342656bb54ba69d8e309b2a11076bde8667671b2f0398abf694b49538761aa4bad08f5b59c4d39a38923f3afd1695f385a8e1c
6
+ metadata.gz: 7e0728273ad8a402031e43930695f11c0f908c7379a2a80c28b68f6278034f8957a47f980161aa490ffa261e16559b699eabd5526f7304176167493e8bf1b7c0
7
+ data.tar.gz: 3cebdabf2dbefc4f8f4a23f8c6df43b25770cda527c0fc502e7a2cd8ab9ac9cfa8a82a1fc108c28168becc6e9f9a624a5c588c5ef8657f1f83b2dfafecd9f413
data/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Release History
2
2
 
3
+ ### 1.37.0 (2022-06-30)
4
+
5
+ #### Features
6
+
7
+ * support OLM Prefix/Suffix ([#18190](https://github.com/googleapis/google-cloud-ruby/issues/18190))
8
+ * allow retry options to be configurable on client initialization ([#18332](https://github.com/googleapis/google-cloud-ruby/issues/18332))
9
+ #### Bug Fixes
10
+
11
+ * update object path parsing to handle hashes in them
12
+
3
13
  ### 1.36.2 (2022-04-20)
4
14
 
5
15
  #### Documentation
@@ -53,6 +53,8 @@ module Google
53
53
  # rule.storage_class #=> "COLDLINE"
54
54
  # rule.age #=> 10
55
55
  # rule.matches_storage_class #=> ["STANDARD", "NEARLINE"]
56
+ # rule.matches_prefix #=> ["myprefix/foo"]
57
+ # rule.matches_suffix #=> [".jpg", ".png"]
56
58
  #
57
59
  # @example Updating the bucket's lifecycle management rules in a block.
58
60
  # require "google/cloud/storage"
@@ -138,6 +140,12 @@ module Google
138
140
  # files. If the value is N, this condition is satisfied when there
139
141
  # are at least N versions (including the live version) newer than
140
142
  # this version of the file.
143
+ # @param [Array<String,Symbol>] matches_prefix
144
+ # Files having their name with the specified list of prefixs will be matched.
145
+ # Arguments will be converted from symbols to strings.
146
+ # @param [Array<String,Symbol>] matches_suffix
147
+ # Files having their name with the specified list of suffixes will be matched.
148
+ # Arguments will be converted from symbols to strings.
141
149
  #
142
150
  # @example
143
151
  # require "google/cloud/storage"
@@ -157,7 +165,9 @@ module Google
157
165
  is_live: nil,
158
166
  matches_storage_class: nil,
159
167
  noncurrent_time_before: nil,
160
- num_newer_versions: nil
168
+ num_newer_versions: nil,
169
+ matches_prefix: nil,
170
+ matches_suffix: nil
161
171
  push Rule.new(
162
172
  "SetStorageClass",
163
173
  storage_class: storage_class_for(storage_class),
@@ -169,12 +179,14 @@ module Google
169
179
  is_live: is_live,
170
180
  matches_storage_class: storage_class_for(matches_storage_class),
171
181
  noncurrent_time_before: noncurrent_time_before,
172
- num_newer_versions: num_newer_versions
182
+ num_newer_versions: num_newer_versions,
183
+ matches_prefix: Array(matches_prefix),
184
+ matches_suffix: Array(matches_suffix)
173
185
  )
174
186
  end
175
187
 
176
188
  ##
177
- # Adds a SetStorageClass lifecycle rule to the Object Lifecycle
189
+ # Adds a Delete lifecycle rule to the Object Lifecycle
178
190
  # Management rules for a bucket.
179
191
  #
180
192
  # @see https://cloud.google.com/storage/docs/lifecycle Object
@@ -221,6 +233,12 @@ module Google
221
233
  # files. If the value is N, this condition is satisfied when there
222
234
  # are at least N versions (including the live version) newer than
223
235
  # this version of the file.
236
+ # @param [Array<String,Symbol>] matches_prefix
237
+ # Files having their name with the specified list of prefixs will be matched.
238
+ # Arguments will be converted from symbols to strings.
239
+ # @param [Array<String,Symbol>] matches_suffix
240
+ # Files having their name with the specified list of suffixes will be matched.
241
+ # Arguments will be converted from symbols to strings.
224
242
  #
225
243
  # @example
226
244
  # require "google/cloud/storage"
@@ -239,7 +257,9 @@ module Google
239
257
  is_live: nil,
240
258
  matches_storage_class: nil,
241
259
  noncurrent_time_before: nil,
242
- num_newer_versions: nil
260
+ num_newer_versions: nil,
261
+ matches_prefix: nil,
262
+ matches_suffix: nil
243
263
  push Rule.new(
244
264
  "Delete",
245
265
  age: age,
@@ -250,7 +270,49 @@ module Google
250
270
  is_live: is_live,
251
271
  matches_storage_class: storage_class_for(matches_storage_class),
252
272
  noncurrent_time_before: noncurrent_time_before,
253
- num_newer_versions: num_newer_versions
273
+ num_newer_versions: num_newer_versions,
274
+ matches_prefix: Array(matches_prefix),
275
+ matches_suffix: Array(matches_suffix)
276
+ )
277
+ end
278
+
279
+ ##
280
+ # Adds a AbortIncompleteMultipartUpload lifecycle rule to the Object Lifecycle
281
+ # Management rules for a bucket.
282
+ #
283
+ # @see https://cloud.google.com/storage/docs/lifecycle Object
284
+ # Lifecycle Management
285
+ # @see https://cloud.google.com/storage/docs/managing-lifecycles
286
+ # Managing Object Lifecycles
287
+ #
288
+ # @param [Integer] age The age of a file (in days). This condition is
289
+ # satisfied when a file reaches the specified age.
290
+ # @param [Array<String,Symbol>] matches_prefix
291
+ # Files having their name with the specified list of prefixs will be matched.
292
+ # Arguments will be converted from symbols to strings.
293
+ # @param [Array<String,Symbol>] matches_suffix
294
+ # Files having their name with the specified list of suffixes will be matched.
295
+ # Arguments will be converted from symbols to strings.
296
+ #
297
+ # @example
298
+ # require "google/cloud/storage"
299
+ #
300
+ # storage = Google::Cloud::Storage.new
301
+ #
302
+ # bucket = storage.create_bucket "my-bucket" do |b|
303
+ # b.lifecycle.add_abort_incomplete_multipart_upload_rule age: 10,
304
+ # matches_prefix: ["images/"],
305
+ # matches_suffix: [".pdf"]
306
+ # end
307
+ #
308
+ def add_abort_incomplete_multipart_upload_rule age: nil,
309
+ matches_prefix: nil,
310
+ matches_suffix: nil
311
+ push Rule.new(
312
+ "AbortIncompleteMultipartUpload",
313
+ age: age,
314
+ matches_prefix: Array(matches_prefix),
315
+ matches_suffix: Array(matches_suffix)
254
316
  )
255
317
  end
256
318
 
@@ -346,6 +408,8 @@ module Google
346
408
  # rule.storage_class #=> "COLDLINE"
347
409
  # rule.age #=> 10
348
410
  # rule.matches_storage_class #=> ["STANDARD", "NEARLINE"]
411
+ # rule.matches_prefix #=> ["myprefix/foo"]
412
+ # rule.matches_suffix #=> [".jpg", ".png"]
349
413
  #
350
414
  # @example Updating the bucket's lifecycle rules in a block.
351
415
  # require "google/cloud/storage"
@@ -382,6 +446,8 @@ module Google
382
446
  attr_accessor :matches_storage_class
383
447
  attr_accessor :noncurrent_time_before
384
448
  attr_accessor :num_newer_versions
449
+ attr_accessor :matches_prefix
450
+ attr_accessor :matches_suffix
385
451
 
386
452
  # @private
387
453
  def initialize action,
@@ -394,7 +460,9 @@ module Google
394
460
  is_live: nil,
395
461
  matches_storage_class: nil,
396
462
  noncurrent_time_before: nil,
397
- num_newer_versions: nil
463
+ num_newer_versions: nil,
464
+ matches_prefix: nil,
465
+ matches_suffix: nil
398
466
  @action = action
399
467
  @storage_class = storage_class
400
468
  @age = age
@@ -406,6 +474,8 @@ module Google
406
474
  @matches_storage_class = Array(matches_storage_class)
407
475
  @noncurrent_time_before = noncurrent_time_before
408
476
  @num_newer_versions = num_newer_versions
477
+ @matches_prefix = Array(matches_prefix)
478
+ @matches_suffix = Array(matches_suffix)
409
479
  end
410
480
 
411
481
  # @private
@@ -420,7 +490,9 @@ module Google
420
490
  is_live,
421
491
  matches_storage_class,
422
492
  noncurrent_time_before,
423
- num_newer_versions
493
+ num_newer_versions,
494
+ matches_prefix,
495
+ matches_suffix
424
496
  )
425
497
  Google::Apis::StorageV1::Bucket::Lifecycle::Rule.new(
426
498
  action: action_gapi(action, storage_class),
@@ -445,7 +517,9 @@ module Google
445
517
  is_live,
446
518
  matches_storage_class,
447
519
  noncurrent_time_before,
448
- num_newer_versions
520
+ num_newer_versions,
521
+ matches_prefix,
522
+ matches_suffix
449
523
  Google::Apis::StorageV1::Bucket::Lifecycle::Rule::Condition.new(
450
524
  age: age,
451
525
  created_before: created_before,
@@ -455,7 +529,9 @@ module Google
455
529
  is_live: is_live,
456
530
  matches_storage_class: Array(matches_storage_class),
457
531
  noncurrent_time_before: noncurrent_time_before,
458
- num_newer_versions: num_newer_versions
532
+ num_newer_versions: num_newer_versions,
533
+ matches_prefix: Array(matches_prefix),
534
+ matches_suffix: Array(matches_suffix)
459
535
  )
460
536
  end
461
537
 
@@ -475,7 +551,9 @@ module Google
475
551
  is_live: c.is_live,
476
552
  matches_storage_class: c.matches_storage_class,
477
553
  noncurrent_time_before: c.noncurrent_time_before,
478
- num_newer_versions: c.num_newer_versions
554
+ num_newer_versions: c.num_newer_versions,
555
+ matches_prefix: c.matches_prefix,
556
+ matches_suffix: c.matches_suffix
479
557
  )
480
558
  end
481
559
 
@@ -48,7 +48,7 @@ module Google
48
48
  #
49
49
  def ext_path
50
50
  path = "/#{@bucket}/#{@path}"
51
- escaped = Addressable::URI.escape path
51
+ escaped = Addressable::URI.encode_component path, Addressable::URI::CharacterClasses::PATH
52
52
  special_var = "${filename}"
53
53
  # Restore the unencoded `${filename}` variable, if present.
54
54
  if path.include? special_var
@@ -326,7 +326,7 @@ module Google
326
326
  #
327
327
  def post_object_ext_path
328
328
  path = "/#{@bucket_name}/#{@file_name}"
329
- escaped = Addressable::URI.escape path
329
+ escaped = Addressable::URI.encode_component path, Addressable::URI::CharacterClasses::PATH
330
330
  special_var = "${filename}"
331
331
  # Restore the unencoded `${filename}` variable, if present.
332
332
  if path.include? special_var
@@ -38,9 +38,12 @@ module Google
38
38
 
39
39
  ##
40
40
  # Creates a new Service instance.
41
+ # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
41
42
  def initialize project, credentials, retries: nil,
42
43
  timeout: nil, open_timeout: nil, read_timeout: nil,
43
- send_timeout: nil, host: nil, quota_project: nil
44
+ send_timeout: nil, host: nil, quota_project: nil,
45
+ max_elapsed_time: nil, base_interval: nil, max_interval: nil,
46
+ multiplier: nil
44
47
  @project = project
45
48
  @credentials = credentials
46
49
  @service = API::StorageService.new
@@ -57,9 +60,14 @@ module Google
57
60
  "gl-ruby/#{RUBY_VERSION} gccl/#{Google::Cloud::Storage::VERSION}"
58
61
  @service.request_options.header["Accept-Encoding"] = "gzip"
59
62
  @service.request_options.quota_project = quota_project if quota_project
63
+ @service.request_options.max_elapsed_time = max_elapsed_time if max_elapsed_time
64
+ @service.request_options.base_interval = base_interval if base_interval
65
+ @service.request_options.max_interval = max_interval if max_interval
66
+ @service.request_options.multiplier = multiplier if multiplier
60
67
  @service.authorization = @credentials.client if @credentials
61
68
  @service.root_url = host if host
62
69
  end
70
+ # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
63
71
 
64
72
  def service
65
73
  return mocked_service if mocked_service
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module Storage
19
- VERSION = "1.36.2".freeze
19
+ VERSION = "1.37.0".freeze
20
20
  end
21
21
  end
22
22
  end
@@ -55,6 +55,11 @@ module Google
55
55
  # * `https://www.googleapis.com/auth/devstorage.full_control`
56
56
  # @param [Integer] retries Number of times to retry requests on server
57
57
  # error. The default value is `3`. Optional.
58
+ # @param [Integer] max_elapsed_time Total time in seconds that requests are allowed to keep being retried.
59
+ # @param [Float] base_interval The initial interval in seconds between tries.
60
+ # @param [Integer] max_interval The maximum interval in seconds that any individual retry can reach.
61
+ # @param [Integer] multiplier Each successive interval grows by this factor. A multipler of 1.5 means the next
62
+ # interval will be 1.5x the current interval.
58
63
  # @param [Integer] timeout (default timeout) The max duration, in seconds, to wait before timing out. Optional.
59
64
  # If left blank, the wait will be at most the time permitted by the underlying HTTP/RPC protocol.
60
65
  # @param [Integer] open_timeout How long, in seconds, before failed connections time out. Optional.
@@ -79,18 +84,24 @@ module Google
79
84
  # bucket = storage.bucket "my-bucket"
80
85
  # file = bucket.file "path/to/my-file.ext"
81
86
  #
82
- # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
87
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity, Metrics/AbcSize
83
88
  def self.new project_id: nil, credentials: nil, scope: nil, retries: nil,
84
89
  timeout: nil, open_timeout: nil, read_timeout: nil,
85
- send_timeout: nil, endpoint: nil, project: nil, keyfile: nil
86
- scope ||= configure.scope
87
- retries ||= configure.retries
88
- timeout ||= configure.timeout
89
- open_timeout ||= (configure.open_timeout || timeout)
90
- read_timeout ||= (configure.read_timeout || timeout)
91
- send_timeout ||= (configure.send_timeout || timeout)
92
- endpoint ||= configure.endpoint
93
- credentials ||= (keyfile || default_credentials(scope: scope))
90
+ send_timeout: nil, endpoint: nil, project: nil, keyfile: nil,
91
+ max_elapsed_time: nil, base_interval: nil, max_interval: nil,
92
+ multiplier: nil
93
+ scope ||= configure.scope
94
+ retries ||= configure.retries
95
+ timeout ||= configure.timeout
96
+ open_timeout ||= (configure.open_timeout || timeout)
97
+ read_timeout ||= (configure.read_timeout || timeout)
98
+ send_timeout ||= (configure.send_timeout || timeout)
99
+ endpoint ||= configure.endpoint
100
+ credentials ||= (keyfile || default_credentials(scope: scope))
101
+ max_elapsed_time ||= configure.max_elapsed_time
102
+ base_interval ||= configure.base_interval
103
+ max_interval ||= configure.max_interval
104
+ multiplier ||= configure.multiplier
94
105
 
95
106
  unless credentials.is_a? Google::Auth::Credentials
96
107
  credentials = Storage::Credentials.new credentials, scope: scope
@@ -104,11 +115,13 @@ module Google
104
115
  project_id, credentials,
105
116
  retries: retries, timeout: timeout, open_timeout: open_timeout,
106
117
  read_timeout: read_timeout, send_timeout: send_timeout,
107
- host: endpoint, quota_project: configure.quota_project
118
+ host: endpoint, quota_project: configure.quota_project,
119
+ max_elapsed_time: max_elapsed_time, base_interval: base_interval,
120
+ max_interval: max_interval, multiplier: multiplier
108
121
  )
109
122
  )
110
123
  end
111
- # rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
124
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity, Metrics/AbcSize
112
125
 
113
126
  ##
114
127
  # Creates an unauthenticated, anonymous client for retrieving public data
@@ -116,6 +129,11 @@ module Google
116
129
  #
117
130
  # @param [Integer] retries Number of times to retry requests on server
118
131
  # error. The default value is `3`. Optional.
132
+ # @param [Integer] max_elapsed_time Total time in seconds that requests are allowed to keep being retried.
133
+ # @param [Float] base_interval The initial interval in seconds between tries.
134
+ # @param [Integer] max_interval The maximum interval in seconds that any individual retry can reach.
135
+ # @param [Integer] multiplier Each successive interval grows by this factor. A multipler of 1.5 means the next
136
+ # interval will be 1.5x the current interval.
119
137
  # @param [Integer] timeout (default timeout) The max duration, in seconds, to wait before timing out. Optional.
120
138
  # If left blank, the wait will be at most the time permitted by the underlying HTTP/RPC protocol.
121
139
  # @param [Integer] open_timeout How long, in seconds, before failed connections time out. Optional.
@@ -139,14 +157,18 @@ module Google
139
157
  # downloaded.read #=> "Hello world!"
140
158
  #
141
159
  def self.anonymous retries: nil, timeout: nil, open_timeout: nil,
142
- read_timeout: nil, send_timeout: nil, endpoint: nil
160
+ read_timeout: nil, send_timeout: nil, endpoint: nil,
161
+ max_elapsed_time: nil, base_interval: nil, max_interval: nil,
162
+ multiplier: nil
143
163
  open_timeout ||= timeout
144
164
  read_timeout ||= timeout
145
165
  send_timeout ||= timeout
146
166
  Storage::Project.new(
147
167
  Storage::Service.new(
148
168
  nil, nil, retries: retries, timeout: timeout, open_timeout: open_timeout,
149
- read_timeout: read_timeout, send_timeout: send_timeout, host: endpoint
169
+ read_timeout: read_timeout, send_timeout: send_timeout, host: endpoint,
170
+ max_elapsed_time: max_elapsed_time, base_interval: base_interval,
171
+ max_interval: max_interval, multiplier: multiplier
150
172
  )
151
173
  )
152
174
  end
@@ -168,6 +190,13 @@ module Google
168
190
  # the set of resources and operations that the connection can access.
169
191
  # * `retries` - (Integer) Number of times to retry requests on server
170
192
  # error.
193
+ # * `max_elapsed_time` - (Integer) Total time in seconds that requests
194
+ # are allowed to keep being retried.
195
+ # * `base_interval` - (Float) The initial interval in seconds between tries.
196
+ # * `max_interval` - (Integer) The maximum interval in seconds that any
197
+ # individual retry can reach.
198
+ # * `multiplier` - (Integer) Each successive interval grows by this factor.
199
+ # A multipler of 1.5 means the next interval will be 1.5x the current interval.
171
200
  # * `timeout` - (Integer) (default timeout) The max duration, in seconds, to wait before timing out.
172
201
  # If left blank, the wait will be at most the time permitted by the underlying HTTP/RPC protocol.
173
202
  # * `open_timeout` - (Integer) How long, in seconds, before failed connections time out.
@@ -45,8 +45,13 @@ module Google
45
45
  # * `https://www.googleapis.com/auth/devstorage.full_control`
46
46
  # @param [Integer] retries Number of times to retry requests on server
47
47
  # error. The default value is `3`. Optional.
48
+ # @param [Integer] max_elapsed_time Total time in seconds that requests are allowed to keep being retried.
49
+ # @param [Float] base_interval The initial interval in seconds between tries.
50
+ # @param [Integer] max_interval The maximum interval in seconds that any individual retry can reach.
51
+ # @param [Integer] multiplier Each successive interval grows by this factor. A multipler of 1.5 means the next
52
+ # interval will be 1.5x the current interval.
48
53
  # @param [Integer] timeout (default timeout) The max duration, in seconds, to wait before timing out. Optional.
49
- # If left blank, the wait will be at most the time permitted by the underlying HTTP/RPC protocol.
54
+ # If left blank, the wait will be at most the time permitted by the underlying HTTP/RPC protocol.
50
55
  # @param [Integer] open_timeout How long, in seconds, before failed connections time out. Optional.
51
56
  # @param [Integer] read_timeout How long, in seconds, before requests time out. Optional.
52
57
  # @param [Integer] send_timeout How long, in seconds, before receiving response from server times out. Optional.
@@ -68,13 +73,18 @@ module Google
68
73
  # readonly_scope = "https://www.googleapis.com/auth/devstorage.read_only"
69
74
  # readonly_storage = gcloud.storage scope: readonly_scope
70
75
  #
71
- def storage scope: nil, retries: nil, timeout: nil, open_timeout: nil, read_timeout: nil, send_timeout: nil
76
+ def storage scope: nil, retries: nil, timeout: nil, open_timeout: nil, read_timeout: nil, send_timeout: nil,
77
+ max_elapsed_time: nil, base_interval: nil, max_interval: nil, multiplier: nil
72
78
  Google::Cloud.storage @project, @keyfile, scope: scope,
73
79
  retries: (retries || @retries),
74
80
  timeout: (timeout || @timeout),
75
81
  open_timeout: (open_timeout || timeout),
76
82
  read_timeout: (read_timeout || timeout),
77
- send_timeout: (send_timeout || timeout)
83
+ send_timeout: (send_timeout || timeout),
84
+ max_elapsed_time: max_elapsed_time,
85
+ base_interval: base_interval,
86
+ max_interval: max_interval,
87
+ multiplier: multiplier
78
88
  end
79
89
 
80
90
  ##
@@ -100,6 +110,11 @@ module Google
100
110
  # * `https://www.googleapis.com/auth/devstorage.full_control`
101
111
  # @param [Integer] retries Number of times to retry requests on server
102
112
  # error. The default value is `3`. Optional.
113
+ # @param [Integer] max_elapsed_time Total time in seconds that requests are allowed to keep being retried.
114
+ # @param [Float] base_interval The initial interval in seconds between tries.
115
+ # @param [Integer] max_interval The maximum interval in seconds that any individual retry can reach.
116
+ # @param [Integer] multiplier Each successive interval grows by this factor. A multipler of 1.5 means the next
117
+ # interval will be 1.5x the current interval.
103
118
  # @param [Integer] timeout (default timeout) The max duration, in seconds, to wait before timing out. Optional.
104
119
  # If left blank, the wait will be at most the time permitted by the underlying HTTP/RPC protocol.
105
120
  # @param [Integer] open_timeout How long, in seconds, before failed connections time out. Optional.
@@ -118,7 +133,8 @@ module Google
118
133
  # file = bucket.file "path/to/my-file.ext"
119
134
  #
120
135
  def self.storage project_id = nil, credentials = nil, scope: nil,
121
- retries: nil, timeout: nil, open_timeout: nil, read_timeout: nil, send_timeout: nil
136
+ retries: nil, timeout: nil, open_timeout: nil, read_timeout: nil, send_timeout: nil,
137
+ max_elapsed_time: nil, base_interval: nil, max_interval: nil, multiplier: nil
122
138
  require "google/cloud/storage"
123
139
  Google::Cloud::Storage.new project_id: project_id,
124
140
  credentials: credentials,
@@ -127,12 +143,17 @@ module Google
127
143
  timeout: timeout,
128
144
  open_timeout: (open_timeout || timeout),
129
145
  read_timeout: (read_timeout || timeout),
130
- send_timeout: (send_timeout || timeout)
146
+ send_timeout: (send_timeout || timeout),
147
+ max_elapsed_time: max_elapsed_time,
148
+ base_interval: base_interval,
149
+ max_interval: max_interval,
150
+ multiplier: multiplier
131
151
  end
132
152
  end
133
153
  end
134
154
 
135
155
  # Set the default storage configuration
156
+ # rubocop:disable Metrics/BlockLength
136
157
  Google::Cloud.configure.add_config! :storage do |config|
137
158
  default_project = Google::Cloud::Config.deferred do
138
159
  ENV["STORAGE_PROJECT"]
@@ -153,6 +174,10 @@ Google::Cloud.configure.add_config! :storage do |config|
153
174
  config.add_field! :scope, nil, match: [String, Array]
154
175
  config.add_field! :quota_project, nil, match: String
155
176
  config.add_field! :retries, nil, match: Integer
177
+ config.add_field! :max_elapsed_time, nil, match: Integer
178
+ config.add_field! :base_interval, nil, match: Float
179
+ config.add_field! :max_interval, nil, match: Integer
180
+ config.add_field! :multiplier, nil, match: Integer
156
181
  config.add_field! :timeout, nil, match: Integer
157
182
  config.add_field! :open_timeout, nil, match: Integer
158
183
  config.add_field! :read_timeout, nil, match: Integer
@@ -160,3 +185,4 @@ Google::Cloud.configure.add_config! :storage do |config|
160
185
  # TODO: Remove once discovery document is updated.
161
186
  config.add_field! :endpoint, "https://storage.googleapis.com/", match: String
162
187
  end
188
+ # rubocop:enable Metrics/BlockLength
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-storage
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.36.2
4
+ version: 1.37.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Moore
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-04-20 00:00:00.000000000 Z
12
+ date: 2022-06-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: google-cloud-core
@@ -135,14 +135,14 @@ dependencies:
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '5.10'
138
+ version: '5.16'
139
139
  type: :development
140
140
  prerelease: false
141
141
  version_requirements: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '5.10'
145
+ version: '5.16'
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: minitest-autotest
148
148
  requirement: !ruby/object:Gem::Requirement
@@ -318,7 +318,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
318
318
  - !ruby/object:Gem::Version
319
319
  version: '0'
320
320
  requirements: []
321
- rubygems_version: 3.3.5
321
+ rubygems_version: 3.3.14
322
322
  signing_key:
323
323
  specification_version: 4
324
324
  summary: API Client library for Google Cloud Storage