google-cloud-storage 1.38.0 → 1.40.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -0
- data/OVERVIEW.md +30 -0
- data/lib/google/cloud/storage/bucket/acl.rb +28 -26
- data/lib/google/cloud/storage/service.rb +156 -70
- data/lib/google/cloud/storage/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7eae657ab195e86fc8c483f9920ffc030e19b3754d118b13d49053f7f3fdc544
|
4
|
+
data.tar.gz: 259b1d1c5138ad671e06a88cb461ed18e03bc6872dfe3d66f90bc3a01eb6907a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bac1d42f4566defbfb79814ec6d1d6aa440b4facf26cd860b1b956bb34d832b0109cf0ef1ffe706fba78f447be8eda3c3b29c9ad3e55b30204354538c2675b99
|
7
|
+
data.tar.gz: 8c90e04918e20961dd33f1e734c65f3d942f3600484cb9ccc697016b3843cc138cb9cd0cb8db0c760f0fcfde655759ce15dad9748115a603cde8a7201e9064c6
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
# Release History
|
2
2
|
|
3
|
+
### 1.40.0 (2022-09-13)
|
4
|
+
|
5
|
+
#### Features
|
6
|
+
|
7
|
+
* Update all patch bucket helper methods to accept preconditions ([#19117](https://github.com/googleapis/google-cloud-ruby/issues/19117))
|
8
|
+
|
9
|
+
### 1.39.0 (2022-08-24)
|
10
|
+
|
11
|
+
#### Features
|
12
|
+
|
13
|
+
* add support for conditional idempotent operations ([#18834](https://github.com/googleapis/google-cloud-ruby/issues/18834))
|
14
|
+
|
3
15
|
### 1.38.0 (2022-07-31)
|
4
16
|
|
5
17
|
#### Features
|
data/OVERVIEW.md
CHANGED
@@ -563,6 +563,36 @@ require "google/cloud/storage"
|
|
563
563
|
storage = Google::Cloud::Storage.new retries: 10, timeout: 120
|
564
564
|
```
|
565
565
|
|
566
|
+
The library by default retries all API requests which are always idempotent on a
|
567
|
+
"transient" error.
|
568
|
+
|
569
|
+
For API requests which are idempotent only if the some conditions are satisfied
|
570
|
+
(For ex. a file has the same "generation"), the library retries only if the
|
571
|
+
condition is specified.
|
572
|
+
|
573
|
+
Rather than using this default behaviour, you may choose to disable the retries
|
574
|
+
on your own.
|
575
|
+
|
576
|
+
You can pass `retries` as `0` to disable retries for all operations regardless
|
577
|
+
of their idempotencies.
|
578
|
+
|
579
|
+
```ruby
|
580
|
+
require "google/cloud/storage"
|
581
|
+
|
582
|
+
storage = Google::Cloud::Storage.new retries: 0
|
583
|
+
```
|
584
|
+
|
585
|
+
You can also disable retries for a particular operation by passing `retries` as
|
586
|
+
`0` in the `options` field.
|
587
|
+
|
588
|
+
```ruby
|
589
|
+
require "google/cloud/storage"
|
590
|
+
|
591
|
+
storage = Google::Cloud::Storage.new
|
592
|
+
service = storage.service
|
593
|
+
service.get_bucket bucket_name, options: {retries: 0}
|
594
|
+
```
|
595
|
+
|
566
596
|
See the [Storage status and error
|
567
597
|
codes](https://cloud.google.com/storage/docs/json_api/v1/status-codes)
|
568
598
|
for a list of error conditions.
|
@@ -349,8 +349,8 @@ module Google
|
|
349
349
|
#
|
350
350
|
# bucket.acl.auth!
|
351
351
|
#
|
352
|
-
def auth!
|
353
|
-
update_predefined_acl! "authenticatedRead"
|
352
|
+
def auth! if_metageneration_match: nil
|
353
|
+
update_predefined_acl! "authenticatedRead", if_metageneration_match: if_metageneration_match
|
354
354
|
end
|
355
355
|
alias authenticatedRead! auth!
|
356
356
|
alias auth_read! auth!
|
@@ -370,8 +370,8 @@ module Google
|
|
370
370
|
#
|
371
371
|
# bucket.acl.private!
|
372
372
|
#
|
373
|
-
def private!
|
374
|
-
update_predefined_acl! "private"
|
373
|
+
def private! if_metageneration_match: nil
|
374
|
+
update_predefined_acl! "private", if_metageneration_match: if_metageneration_match
|
375
375
|
end
|
376
376
|
|
377
377
|
##
|
@@ -387,8 +387,8 @@ module Google
|
|
387
387
|
#
|
388
388
|
# bucket.acl.project_private!
|
389
389
|
#
|
390
|
-
def project_private!
|
391
|
-
update_predefined_acl! "projectPrivate"
|
390
|
+
def project_private! if_metageneration_match: nil
|
391
|
+
update_predefined_acl! "projectPrivate", if_metageneration_match: if_metageneration_match
|
392
392
|
end
|
393
393
|
alias projectPrivate! project_private!
|
394
394
|
|
@@ -405,8 +405,8 @@ module Google
|
|
405
405
|
#
|
406
406
|
# bucket.acl.public!
|
407
407
|
#
|
408
|
-
def public!
|
409
|
-
update_predefined_acl! "publicRead"
|
408
|
+
def public! if_metageneration_match: nil
|
409
|
+
update_predefined_acl! "publicRead", if_metageneration_match: if_metageneration_match
|
410
410
|
end
|
411
411
|
alias publicRead! public!
|
412
412
|
alias public_read! public!
|
@@ -423,8 +423,8 @@ module Google
|
|
423
423
|
#
|
424
424
|
# bucket.acl.public_write!
|
425
425
|
#
|
426
|
-
def public_write!
|
427
|
-
update_predefined_acl! "publicReadWrite"
|
426
|
+
def public_write! if_metageneration_match: nil
|
427
|
+
update_predefined_acl! "publicReadWrite", if_metageneration_match: if_metageneration_match
|
428
428
|
end
|
429
429
|
alias publicReadWrite! public_write!
|
430
430
|
|
@@ -437,9 +437,10 @@ module Google
|
|
437
437
|
self
|
438
438
|
end
|
439
439
|
|
440
|
-
def update_predefined_acl! acl_role
|
440
|
+
def update_predefined_acl! acl_role, if_metageneration_match: nil
|
441
441
|
@service.patch_bucket @bucket, predefined_acl: acl_role,
|
442
|
-
user_project: user_project
|
442
|
+
user_project: user_project,
|
443
|
+
if_metageneration_match: if_metageneration_match
|
443
444
|
clear!
|
444
445
|
end
|
445
446
|
|
@@ -714,8 +715,8 @@ module Google
|
|
714
715
|
#
|
715
716
|
# bucket.default_acl.auth!
|
716
717
|
#
|
717
|
-
def auth!
|
718
|
-
update_predefined_default_acl! "authenticatedRead"
|
718
|
+
def auth! if_metageneration_match: nil
|
719
|
+
update_predefined_default_acl! "authenticatedRead", if_metageneration_match: if_metageneration_match
|
719
720
|
end
|
720
721
|
alias authenticatedRead! auth!
|
721
722
|
alias auth_read! auth!
|
@@ -735,8 +736,8 @@ module Google
|
|
735
736
|
#
|
736
737
|
# bucket.default_acl.owner_full!
|
737
738
|
#
|
738
|
-
def owner_full!
|
739
|
-
update_predefined_default_acl! "bucketOwnerFullControl"
|
739
|
+
def owner_full! if_metageneration_match: nil
|
740
|
+
update_predefined_default_acl! "bucketOwnerFullControl", if_metageneration_match: if_metageneration_match
|
740
741
|
end
|
741
742
|
alias bucketOwnerFullControl! owner_full!
|
742
743
|
|
@@ -753,8 +754,8 @@ module Google
|
|
753
754
|
#
|
754
755
|
# bucket.default_acl.owner_read!
|
755
756
|
#
|
756
|
-
def owner_read!
|
757
|
-
update_predefined_default_acl! "bucketOwnerRead"
|
757
|
+
def owner_read! if_metageneration_match: nil
|
758
|
+
update_predefined_default_acl! "bucketOwnerRead", if_metageneration_match: if_metageneration_match
|
758
759
|
end
|
759
760
|
alias bucketOwnerRead! owner_read!
|
760
761
|
|
@@ -771,8 +772,8 @@ module Google
|
|
771
772
|
#
|
772
773
|
# bucket.default_acl.private!
|
773
774
|
#
|
774
|
-
def private!
|
775
|
-
update_predefined_default_acl! "private"
|
775
|
+
def private! if_metageneration_match: nil
|
776
|
+
update_predefined_default_acl! "private", if_metageneration_match: if_metageneration_match
|
776
777
|
end
|
777
778
|
|
778
779
|
##
|
@@ -788,8 +789,8 @@ module Google
|
|
788
789
|
#
|
789
790
|
# bucket.default_acl.project_private!
|
790
791
|
#
|
791
|
-
def project_private!
|
792
|
-
update_predefined_default_acl! "projectPrivate"
|
792
|
+
def project_private! if_metageneration_match: nil
|
793
|
+
update_predefined_default_acl! "projectPrivate", if_metageneration_match: if_metageneration_match
|
793
794
|
end
|
794
795
|
alias projectPrivate! project_private!
|
795
796
|
|
@@ -806,8 +807,8 @@ module Google
|
|
806
807
|
#
|
807
808
|
# bucket.default_acl.public!
|
808
809
|
#
|
809
|
-
def public!
|
810
|
-
update_predefined_default_acl! "publicRead"
|
810
|
+
def public! if_metageneration_match: nil
|
811
|
+
update_predefined_default_acl! "publicRead", if_metageneration_match: if_metageneration_match
|
811
812
|
end
|
812
813
|
alias publicRead! public!
|
813
814
|
alias public_read! public!
|
@@ -820,9 +821,10 @@ module Google
|
|
820
821
|
self
|
821
822
|
end
|
822
823
|
|
823
|
-
def update_predefined_default_acl! acl_role
|
824
|
+
def update_predefined_default_acl! acl_role, if_metageneration_match: nil
|
824
825
|
@service.patch_bucket @bucket, predefined_default_acl: acl_role,
|
825
|
-
user_project: user_project
|
826
|
+
user_project: user_project,
|
827
|
+
if_metageneration_match: if_metageneration_match
|
826
828
|
clear!
|
827
829
|
end
|
828
830
|
|
@@ -81,11 +81,11 @@ module Google
|
|
81
81
|
|
82
82
|
##
|
83
83
|
# Retrieves a list of buckets for the given project.
|
84
|
-
def list_buckets prefix: nil, token: nil, max: nil, user_project: nil
|
84
|
+
def list_buckets prefix: nil, token: nil, max: nil, user_project: nil, options: {}
|
85
85
|
execute do
|
86
86
|
service.list_buckets \
|
87
87
|
@project, prefix: prefix, page_token: token, max_results: max,
|
88
|
-
user_project: user_project(user_project)
|
88
|
+
user_project: user_project(user_project), options: options
|
89
89
|
end
|
90
90
|
end
|
91
91
|
|
@@ -95,12 +95,14 @@ module Google
|
|
95
95
|
def get_bucket bucket_name,
|
96
96
|
if_metageneration_match: nil,
|
97
97
|
if_metageneration_not_match: nil,
|
98
|
-
user_project: nil
|
98
|
+
user_project: nil,
|
99
|
+
options: {}
|
99
100
|
execute do
|
100
101
|
service.get_bucket bucket_name,
|
101
102
|
if_metageneration_match: if_metageneration_match,
|
102
103
|
if_metageneration_not_match: if_metageneration_not_match,
|
103
|
-
user_project: user_project(user_project)
|
104
|
+
user_project: user_project(user_project),
|
105
|
+
options: options
|
104
106
|
end
|
105
107
|
end
|
106
108
|
|
@@ -108,13 +110,14 @@ module Google
|
|
108
110
|
# Creates a new bucket.
|
109
111
|
# Returns Google::Apis::StorageV1::Bucket.
|
110
112
|
def insert_bucket bucket_gapi, acl: nil, default_acl: nil,
|
111
|
-
user_project: nil
|
113
|
+
user_project: nil, options: {}
|
112
114
|
execute do
|
113
115
|
service.insert_bucket \
|
114
116
|
@project, bucket_gapi,
|
115
117
|
predefined_acl: acl,
|
116
118
|
predefined_default_object_acl: default_acl,
|
117
|
-
user_project: user_project(user_project)
|
119
|
+
user_project: user_project(user_project),
|
120
|
+
options: options
|
118
121
|
end
|
119
122
|
end
|
120
123
|
|
@@ -126,11 +129,17 @@ module Google
|
|
126
129
|
predefined_default_acl: nil,
|
127
130
|
if_metageneration_match: nil,
|
128
131
|
if_metageneration_not_match: nil,
|
129
|
-
user_project: nil
|
132
|
+
user_project: nil,
|
133
|
+
options: {}
|
130
134
|
bucket_gapi ||= Google::Apis::StorageV1::Bucket.new
|
131
135
|
bucket_gapi.acl = [] if predefined_acl
|
132
136
|
bucket_gapi.default_object_acl = [] if predefined_default_acl
|
133
137
|
|
138
|
+
if options[:retry].nil?
|
139
|
+
is_idempotent = retry? if_metageneration_match: if_metageneration_match
|
140
|
+
options = is_idempotent ? {} : { retries: 0 }
|
141
|
+
end
|
142
|
+
|
134
143
|
execute do
|
135
144
|
service.patch_bucket bucket_name,
|
136
145
|
bucket_gapi,
|
@@ -138,7 +147,8 @@ module Google
|
|
138
147
|
predefined_default_object_acl: predefined_default_acl,
|
139
148
|
if_metageneration_match: if_metageneration_match,
|
140
149
|
if_metageneration_not_match: if_metageneration_not_match,
|
141
|
-
user_project: user_project(user_project)
|
150
|
+
user_project: user_project(user_project),
|
151
|
+
options: options
|
142
152
|
end
|
143
153
|
end
|
144
154
|
|
@@ -147,119 +157,132 @@ module Google
|
|
147
157
|
def delete_bucket bucket_name,
|
148
158
|
if_metageneration_match: nil,
|
149
159
|
if_metageneration_not_match: nil,
|
150
|
-
user_project: nil
|
160
|
+
user_project: nil,
|
161
|
+
options: {}
|
151
162
|
execute do
|
152
163
|
service.delete_bucket bucket_name,
|
153
164
|
if_metageneration_match: if_metageneration_match,
|
154
165
|
if_metageneration_not_match: if_metageneration_not_match,
|
155
|
-
user_project: user_project(user_project)
|
166
|
+
user_project: user_project(user_project),
|
167
|
+
options: options
|
156
168
|
end
|
157
169
|
end
|
158
170
|
|
159
171
|
##
|
160
172
|
# Locks retention policy on a bucket.
|
161
173
|
def lock_bucket_retention_policy bucket_name, metageneration,
|
162
|
-
user_project: nil
|
174
|
+
user_project: nil,
|
175
|
+
options: {}
|
163
176
|
execute do
|
164
177
|
service.lock_bucket_retention_policy \
|
165
178
|
bucket_name, metageneration,
|
166
|
-
user_project: user_project(user_project)
|
179
|
+
user_project: user_project(user_project),
|
180
|
+
options: options
|
167
181
|
end
|
168
182
|
end
|
169
183
|
|
170
184
|
##
|
171
185
|
# Retrieves a list of ACLs for the given bucket.
|
172
|
-
def list_bucket_acls bucket_name, user_project: nil
|
186
|
+
def list_bucket_acls bucket_name, user_project: nil, options: {}
|
173
187
|
execute do
|
174
188
|
service.list_bucket_access_controls \
|
175
|
-
bucket_name, user_project: user_project(user_project)
|
189
|
+
bucket_name, user_project: user_project(user_project),
|
190
|
+
options: options
|
176
191
|
end
|
177
192
|
end
|
178
193
|
|
179
194
|
##
|
180
195
|
# Creates a new bucket ACL.
|
181
|
-
def insert_bucket_acl bucket_name, entity, role, user_project: nil
|
196
|
+
def insert_bucket_acl bucket_name, entity, role, user_project: nil, options: {}
|
182
197
|
params = { entity: entity, role: role }.delete_if { |_k, v| v.nil? }
|
183
198
|
new_acl = Google::Apis::StorageV1::BucketAccessControl.new(**params)
|
184
199
|
execute do
|
185
200
|
service.insert_bucket_access_control \
|
186
|
-
bucket_name, new_acl, user_project: user_project(user_project)
|
201
|
+
bucket_name, new_acl, user_project: user_project(user_project),
|
202
|
+
options: options
|
187
203
|
end
|
188
204
|
end
|
189
205
|
|
190
206
|
##
|
191
207
|
# Permanently deletes a bucket ACL.
|
192
|
-
def delete_bucket_acl bucket_name, entity, user_project: nil
|
208
|
+
def delete_bucket_acl bucket_name, entity, user_project: nil, options: {}
|
193
209
|
execute do
|
194
210
|
service.delete_bucket_access_control \
|
195
|
-
bucket_name, entity, user_project: user_project(user_project)
|
211
|
+
bucket_name, entity, user_project: user_project(user_project),
|
212
|
+
options: options
|
196
213
|
end
|
197
214
|
end
|
198
215
|
|
199
216
|
##
|
200
217
|
# Retrieves a list of default ACLs for the given bucket.
|
201
|
-
def list_default_acls bucket_name, user_project: nil
|
218
|
+
def list_default_acls bucket_name, user_project: nil, options: {}
|
202
219
|
execute do
|
203
220
|
service.list_default_object_access_controls \
|
204
|
-
bucket_name, user_project: user_project(user_project)
|
221
|
+
bucket_name, user_project: user_project(user_project),
|
222
|
+
options: options
|
205
223
|
end
|
206
224
|
end
|
207
225
|
|
208
226
|
##
|
209
227
|
# Creates a new default ACL.
|
210
|
-
def insert_default_acl bucket_name, entity, role, user_project: nil
|
228
|
+
def insert_default_acl bucket_name, entity, role, user_project: nil, options: {}
|
211
229
|
param = { entity: entity, role: role }.delete_if { |_k, v| v.nil? }
|
212
230
|
new_acl = Google::Apis::StorageV1::ObjectAccessControl.new(**param)
|
213
231
|
execute do
|
214
232
|
service.insert_default_object_access_control \
|
215
|
-
bucket_name, new_acl, user_project: user_project(user_project)
|
233
|
+
bucket_name, new_acl, user_project: user_project(user_project),
|
234
|
+
options: options
|
216
235
|
end
|
217
236
|
end
|
218
237
|
|
219
238
|
##
|
220
239
|
# Permanently deletes a default ACL.
|
221
|
-
def delete_default_acl bucket_name, entity, user_project: nil
|
240
|
+
def delete_default_acl bucket_name, entity, user_project: nil, options: {}
|
222
241
|
execute do
|
223
242
|
service.delete_default_object_access_control \
|
224
|
-
bucket_name, entity, user_project: user_project(user_project)
|
243
|
+
bucket_name, entity, user_project: user_project(user_project),
|
244
|
+
options: options
|
225
245
|
end
|
226
246
|
end
|
227
247
|
|
228
248
|
##
|
229
249
|
# Returns Google::Apis::StorageV1::Policy
|
230
|
-
def get_bucket_policy bucket_name, requested_policy_version: nil, user_project: nil
|
250
|
+
def get_bucket_policy bucket_name, requested_policy_version: nil, user_project: nil,
|
251
|
+
options: {}
|
231
252
|
# get_bucket_iam_policy(bucket, fields: nil, quota_user: nil,
|
232
253
|
# user_ip: nil, options: nil)
|
233
254
|
execute do
|
234
255
|
service.get_bucket_iam_policy bucket_name, options_requested_policy_version: requested_policy_version,
|
235
|
-
user_project: user_project(user_project)
|
256
|
+
user_project: user_project(user_project), options: options
|
236
257
|
end
|
237
258
|
end
|
238
259
|
|
239
260
|
##
|
240
261
|
# Returns Google::Apis::StorageV1::Policy
|
241
|
-
def set_bucket_policy bucket_name, new_policy, user_project: nil
|
262
|
+
def set_bucket_policy bucket_name, new_policy, user_project: nil, options: {}
|
242
263
|
execute do
|
243
264
|
service.set_bucket_iam_policy \
|
244
|
-
bucket_name, new_policy, user_project: user_project(user_project)
|
265
|
+
bucket_name, new_policy, user_project: user_project(user_project), options: options
|
245
266
|
end
|
246
267
|
end
|
247
268
|
|
248
269
|
##
|
249
270
|
# Returns Google::Apis::StorageV1::TestIamPermissionsResponse
|
250
|
-
def test_bucket_permissions bucket_name, permissions, user_project: nil
|
271
|
+
def test_bucket_permissions bucket_name, permissions, user_project: nil, options: {}
|
251
272
|
execute do
|
252
273
|
service.test_bucket_iam_permissions \
|
253
|
-
bucket_name, permissions, user_project: user_project(user_project)
|
274
|
+
bucket_name, permissions, user_project: user_project(user_project),
|
275
|
+
options: options
|
254
276
|
end
|
255
277
|
end
|
256
278
|
|
257
279
|
##
|
258
280
|
# Retrieves a list of Pub/Sub notification subscriptions for a bucket.
|
259
|
-
def list_notifications bucket_name, user_project: nil
|
281
|
+
def list_notifications bucket_name, user_project: nil, options: {}
|
260
282
|
execute do
|
261
283
|
service.list_notifications bucket_name,
|
262
|
-
user_project: user_project(user_project)
|
284
|
+
user_project: user_project(user_project),
|
285
|
+
options: options
|
263
286
|
end
|
264
287
|
end
|
265
288
|
|
@@ -267,7 +290,7 @@ module Google
|
|
267
290
|
# Creates a new Pub/Sub notification subscription for a bucket.
|
268
291
|
def insert_notification bucket_name, topic_name, custom_attrs: nil,
|
269
292
|
event_types: nil, prefix: nil, payload: nil,
|
270
|
-
user_project: nil
|
293
|
+
user_project: nil, options: {}
|
271
294
|
params =
|
272
295
|
{ custom_attributes: custom_attrs,
|
273
296
|
event_types: event_types(event_types),
|
@@ -279,38 +302,43 @@ module Google
|
|
279
302
|
execute do
|
280
303
|
service.insert_notification \
|
281
304
|
bucket_name, new_notification,
|
282
|
-
user_project: user_project(user_project)
|
305
|
+
user_project: user_project(user_project),
|
306
|
+
options: options
|
283
307
|
end
|
284
308
|
end
|
285
309
|
|
286
310
|
##
|
287
311
|
# Retrieves a Pub/Sub notification subscription for a bucket.
|
288
|
-
def get_notification bucket_name, notification_id, user_project: nil
|
312
|
+
def get_notification bucket_name, notification_id, user_project: nil, options: {}
|
289
313
|
execute do
|
290
314
|
service.get_notification bucket_name, notification_id,
|
291
|
-
user_project: user_project(user_project)
|
315
|
+
user_project: user_project(user_project),
|
316
|
+
options: options
|
292
317
|
end
|
293
318
|
end
|
294
319
|
|
295
320
|
##
|
296
321
|
# Deletes a new Pub/Sub notification subscription for a bucket.
|
297
|
-
def delete_notification bucket_name, notification_id, user_project: nil
|
322
|
+
def delete_notification bucket_name, notification_id, user_project: nil, options: {}
|
298
323
|
execute do
|
299
324
|
service.delete_notification bucket_name, notification_id,
|
300
|
-
user_project: user_project(user_project)
|
325
|
+
user_project: user_project(user_project),
|
326
|
+
options: options
|
301
327
|
end
|
302
328
|
end
|
303
329
|
|
304
330
|
##
|
305
331
|
# Retrieves a list of files matching the criteria.
|
306
332
|
def list_files bucket_name, delimiter: nil, max: nil, token: nil,
|
307
|
-
prefix: nil, versions: nil, user_project: nil
|
333
|
+
prefix: nil, versions: nil, user_project: nil,
|
334
|
+
options: {}
|
308
335
|
execute do
|
309
336
|
service.list_objects \
|
310
337
|
bucket_name, delimiter: delimiter, max_results: max,
|
311
338
|
page_token: token, prefix: prefix,
|
312
339
|
versions: versions,
|
313
|
-
user_project: user_project(user_project)
|
340
|
+
user_project: user_project(user_project),
|
341
|
+
options: options
|
314
342
|
end
|
315
343
|
end
|
316
344
|
|
@@ -338,7 +366,8 @@ module Google
|
|
338
366
|
if_generation_not_match: nil,
|
339
367
|
if_metageneration_match: nil,
|
340
368
|
if_metageneration_not_match: nil,
|
341
|
-
user_project: nil
|
369
|
+
user_project: nil,
|
370
|
+
options: {}
|
342
371
|
params = {
|
343
372
|
cache_control: cache_control,
|
344
373
|
content_type: content_type,
|
@@ -356,6 +385,13 @@ module Google
|
|
356
385
|
file_obj = Google::Apis::StorageV1::Object.new(**params)
|
357
386
|
content_type ||= mime_type_for(path || Pathname(source).to_path)
|
358
387
|
|
388
|
+
if options[:retry].nil?
|
389
|
+
is_idempotent = retry? if_generation_match: if_generation_match
|
390
|
+
options = is_idempotent ? key_options(key) : key_options(key).merge(retries: 0)
|
391
|
+
else
|
392
|
+
options = key_options(key).merge options
|
393
|
+
end
|
394
|
+
|
359
395
|
execute do
|
360
396
|
service.insert_object bucket_name,
|
361
397
|
file_obj,
|
@@ -370,7 +406,7 @@ module Google
|
|
370
406
|
if_metageneration_not_match: if_metageneration_not_match,
|
371
407
|
kms_key_name: kms_key,
|
372
408
|
user_project: user_project(user_project),
|
373
|
-
options:
|
409
|
+
options: options
|
374
410
|
end
|
375
411
|
end
|
376
412
|
|
@@ -384,7 +420,8 @@ module Google
|
|
384
420
|
if_metageneration_match: nil,
|
385
421
|
if_metageneration_not_match: nil,
|
386
422
|
key: nil,
|
387
|
-
user_project: nil
|
423
|
+
user_project: nil,
|
424
|
+
options: {}
|
388
425
|
execute do
|
389
426
|
service.get_object \
|
390
427
|
bucket_name, file_path,
|
@@ -394,7 +431,7 @@ module Google
|
|
394
431
|
if_metageneration_match: if_metageneration_match,
|
395
432
|
if_metageneration_not_match: if_metageneration_not_match,
|
396
433
|
user_project: user_project(user_project),
|
397
|
-
options: key_options(key)
|
434
|
+
options: key_options(key).merge(options)
|
398
435
|
end
|
399
436
|
end
|
400
437
|
|
@@ -419,8 +456,17 @@ module Google
|
|
419
456
|
if_source_metageneration_match: nil,
|
420
457
|
if_source_metageneration_not_match: nil,
|
421
458
|
token: nil,
|
422
|
-
user_project: nil
|
459
|
+
user_project: nil,
|
460
|
+
options: {}
|
423
461
|
key_options = rewrite_key_options source_key, destination_key
|
462
|
+
|
463
|
+
if options[:retry].nil?
|
464
|
+
is_idempotent = retry? if_generation_match: if_generation_match
|
465
|
+
options = is_idempotent ? key_options : key_options.merge(retries: 0)
|
466
|
+
else
|
467
|
+
options = key_options.merge options
|
468
|
+
end
|
469
|
+
|
424
470
|
execute do
|
425
471
|
service.rewrite_object source_bucket_name,
|
426
472
|
source_file_path,
|
@@ -440,7 +486,7 @@ module Google
|
|
440
486
|
if_source_metageneration_not_match: if_source_metageneration_not_match,
|
441
487
|
rewrite_token: token,
|
442
488
|
user_project: user_project(user_project),
|
443
|
-
options:
|
489
|
+
options: options
|
444
490
|
end
|
445
491
|
end
|
446
492
|
|
@@ -455,12 +501,20 @@ module Google
|
|
455
501
|
if_source_generation_match: nil,
|
456
502
|
if_generation_match: nil,
|
457
503
|
if_metageneration_match: nil,
|
458
|
-
user_project: nil
|
504
|
+
user_project: nil,
|
505
|
+
options: {}
|
459
506
|
|
460
507
|
source_objects = compose_file_source_objects source_files, if_source_generation_match
|
461
508
|
compose_req = Google::Apis::StorageV1::ComposeRequest.new source_objects: source_objects,
|
462
509
|
destination: destination_gapi
|
463
510
|
|
511
|
+
if options[:retry].nil?
|
512
|
+
is_idempotent = retry? if_generation_match: if_generation_match
|
513
|
+
options = is_idempotent ? key_options(key) : key_options(key).merge(retries: 0)
|
514
|
+
else
|
515
|
+
options = key_options.merge options
|
516
|
+
end
|
517
|
+
|
464
518
|
execute do
|
465
519
|
service.compose_object bucket_name,
|
466
520
|
destination_path,
|
@@ -469,7 +523,7 @@ module Google
|
|
469
523
|
if_generation_match: if_generation_match,
|
470
524
|
if_metageneration_match: if_metageneration_match,
|
471
525
|
user_project: user_project(user_project),
|
472
|
-
options:
|
526
|
+
options: options
|
473
527
|
end
|
474
528
|
end
|
475
529
|
|
@@ -483,8 +537,8 @@ module Google
|
|
483
537
|
# Apis::StorageV1::StorageService and Apis::Core::DownloadCommand at
|
484
538
|
# the end of this file.
|
485
539
|
def download_file bucket_name, file_path, target_path, generation: nil,
|
486
|
-
key: nil, range: nil, user_project: nil
|
487
|
-
options = key_options
|
540
|
+
key: nil, range: nil, user_project: nil, options: {}
|
541
|
+
options = key_options(key).merge(options)
|
488
542
|
options = range_header options, range
|
489
543
|
|
490
544
|
execute do
|
@@ -507,8 +561,15 @@ module Google
|
|
507
561
|
if_metageneration_match: nil,
|
508
562
|
if_metageneration_not_match: nil,
|
509
563
|
predefined_acl: nil,
|
510
|
-
user_project: nil
|
564
|
+
user_project: nil,
|
565
|
+
options: {}
|
511
566
|
file_gapi ||= Google::Apis::StorageV1::Object.new
|
567
|
+
|
568
|
+
if options[:retry].nil?
|
569
|
+
is_idempotent = retry? if_metageneration_match: if_metageneration_match
|
570
|
+
options = is_idempotent ? {} : { retries: 0 }
|
571
|
+
end
|
572
|
+
|
512
573
|
execute do
|
513
574
|
service.patch_object bucket_name,
|
514
575
|
file_path,
|
@@ -519,7 +580,8 @@ module Google
|
|
519
580
|
if_metageneration_match: if_metageneration_match,
|
520
581
|
if_metageneration_not_match: if_metageneration_not_match,
|
521
582
|
predefined_acl: predefined_acl,
|
522
|
-
user_project: user_project(user_project)
|
583
|
+
user_project: user_project(user_project),
|
584
|
+
options: options
|
523
585
|
end
|
524
586
|
end
|
525
587
|
|
@@ -532,7 +594,14 @@ module Google
|
|
532
594
|
if_generation_not_match: nil,
|
533
595
|
if_metageneration_match: nil,
|
534
596
|
if_metageneration_not_match: nil,
|
535
|
-
user_project: nil
|
597
|
+
user_project: nil,
|
598
|
+
options: {}
|
599
|
+
|
600
|
+
if options[:retry].nil?
|
601
|
+
is_idempotent = retry? generation: generation, if_generation_match: if_generation_match
|
602
|
+
options = is_idempotent ? {} : { retries: 0 }
|
603
|
+
end
|
604
|
+
|
536
605
|
execute do
|
537
606
|
service.delete_object bucket_name, file_path,
|
538
607
|
generation: generation,
|
@@ -540,40 +609,45 @@ module Google
|
|
540
609
|
if_generation_not_match: if_generation_not_match,
|
541
610
|
if_metageneration_match: if_metageneration_match,
|
542
611
|
if_metageneration_not_match: if_metageneration_not_match,
|
543
|
-
user_project: user_project(user_project)
|
612
|
+
user_project: user_project(user_project),
|
613
|
+
options: options
|
544
614
|
end
|
545
615
|
end
|
546
616
|
|
547
617
|
##
|
548
618
|
# Retrieves a list of ACLs for the given file.
|
549
|
-
def list_file_acls bucket_name, file_name, user_project: nil
|
619
|
+
def list_file_acls bucket_name, file_name, user_project: nil, options: {}
|
550
620
|
execute do
|
551
621
|
service.list_object_access_controls \
|
552
|
-
bucket_name, file_name, user_project: user_project(user_project)
|
622
|
+
bucket_name, file_name, user_project: user_project(user_project),
|
623
|
+
options: options
|
553
624
|
end
|
554
625
|
end
|
555
626
|
|
556
627
|
##
|
557
628
|
# Creates a new file ACL.
|
558
629
|
def insert_file_acl bucket_name, file_name, entity, role,
|
559
|
-
generation: nil, user_project: nil
|
630
|
+
generation: nil, user_project: nil,
|
631
|
+
options: {}
|
560
632
|
params = { entity: entity, role: role }.delete_if { |_k, v| v.nil? }
|
561
633
|
new_acl = Google::Apis::StorageV1::ObjectAccessControl.new(**params)
|
562
634
|
execute do
|
563
635
|
service.insert_object_access_control \
|
564
636
|
bucket_name, file_name, new_acl,
|
565
|
-
generation: generation, user_project: user_project(user_project)
|
637
|
+
generation: generation, user_project: user_project(user_project),
|
638
|
+
options: options
|
566
639
|
end
|
567
640
|
end
|
568
641
|
|
569
642
|
##
|
570
643
|
# Permanently deletes a file ACL.
|
571
644
|
def delete_file_acl bucket_name, file_name, entity, generation: nil,
|
572
|
-
user_project: nil
|
645
|
+
user_project: nil, options: {}
|
573
646
|
execute do
|
574
647
|
service.delete_object_access_control \
|
575
648
|
bucket_name, file_name, entity,
|
576
|
-
generation: generation, user_project: user_project(user_project)
|
649
|
+
generation: generation, user_project: user_project(user_project),
|
650
|
+
options: options
|
577
651
|
end
|
578
652
|
end
|
579
653
|
|
@@ -581,32 +655,37 @@ module Google
|
|
581
655
|
# Creates a new HMAC key for the specified service account.
|
582
656
|
# Returns Google::Apis::StorageV1::HmacKey.
|
583
657
|
def create_hmac_key service_account_email, project_id: nil,
|
584
|
-
user_project: nil
|
658
|
+
user_project: nil, options: {}
|
585
659
|
execute do
|
586
660
|
service.create_project_hmac_key \
|
587
661
|
(project_id || @project), service_account_email,
|
588
|
-
user_project: user_project(user_project)
|
662
|
+
user_project: user_project(user_project),
|
663
|
+
options: options
|
589
664
|
end
|
590
665
|
end
|
591
666
|
|
592
667
|
##
|
593
668
|
# Deletes an HMAC key. Key must be in the INACTIVE state.
|
594
|
-
def delete_hmac_key access_id, project_id: nil, user_project: nil
|
669
|
+
def delete_hmac_key access_id, project_id: nil, user_project: nil,
|
670
|
+
options: {}
|
595
671
|
execute do
|
596
672
|
service.delete_project_hmac_key \
|
597
673
|
(project_id || @project), access_id,
|
598
|
-
user_project: user_project(user_project)
|
674
|
+
user_project: user_project(user_project),
|
675
|
+
options: options
|
599
676
|
end
|
600
677
|
end
|
601
678
|
|
602
679
|
##
|
603
680
|
# Retrieves an HMAC key's metadata.
|
604
681
|
# Returns Google::Apis::StorageV1::HmacKeyMetadata.
|
605
|
-
def get_hmac_key access_id, project_id: nil, user_project: nil
|
682
|
+
def get_hmac_key access_id, project_id: nil, user_project: nil,
|
683
|
+
options: {}
|
606
684
|
execute do
|
607
685
|
service.get_project_hmac_key \
|
608
686
|
(project_id || @project), access_id,
|
609
|
-
user_project: user_project(user_project)
|
687
|
+
user_project: user_project(user_project),
|
688
|
+
options: options
|
610
689
|
end
|
611
690
|
end
|
612
691
|
|
@@ -615,14 +694,15 @@ module Google
|
|
615
694
|
# Returns Google::Apis::StorageV1::HmacKeysMetadata.
|
616
695
|
def list_hmac_keys max: nil, token: nil, service_account_email: nil,
|
617
696
|
project_id: nil, show_deleted_keys: nil,
|
618
|
-
user_project: nil
|
697
|
+
user_project: nil, options: {}
|
619
698
|
execute do
|
620
699
|
service.list_project_hmac_keys \
|
621
700
|
(project_id || @project),
|
622
701
|
max_results: max, page_token: token,
|
623
702
|
service_account_email: service_account_email,
|
624
703
|
show_deleted_keys: show_deleted_keys,
|
625
|
-
user_project: user_project(user_project)
|
704
|
+
user_project: user_project(user_project),
|
705
|
+
options: options
|
626
706
|
end
|
627
707
|
end
|
628
708
|
|
@@ -631,11 +711,13 @@ module Google
|
|
631
711
|
# for valid states.
|
632
712
|
# Returns Google::Apis::StorageV1::HmacKeyMetadata.
|
633
713
|
def update_hmac_key access_id, hmac_key_metadata_object,
|
634
|
-
project_id: nil, user_project: nil
|
714
|
+
project_id: nil, user_project: nil,
|
715
|
+
options: {}
|
635
716
|
execute do
|
636
717
|
service.update_project_hmac_key \
|
637
718
|
(project_id || @project), access_id, hmac_key_metadata_object,
|
638
|
-
user_project: user_project(user_project)
|
719
|
+
user_project: user_project(user_project),
|
720
|
+
options: options
|
639
721
|
end
|
640
722
|
end
|
641
723
|
|
@@ -771,6 +853,10 @@ module Google
|
|
771
853
|
rescue Google::Apis::Error => e
|
772
854
|
raise Google::Cloud::Error.from_error(e)
|
773
855
|
end
|
856
|
+
|
857
|
+
def retry? query_params
|
858
|
+
query_params.any? { |_key, val| !val.nil? }
|
859
|
+
end
|
774
860
|
end
|
775
861
|
end
|
776
862
|
end
|
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.
|
4
|
+
version: 1.40.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-
|
12
|
+
date: 2022-09-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: google-cloud-core
|