google-cloud-storage 1.54.0 → 1.56.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 +4 -4
- data/CHANGELOG.md +15 -0
- data/lib/google/cloud/storage/bucket/list.rb +4 -2
- data/lib/google/cloud/storage/bucket.rb +71 -1
- data/lib/google/cloud/storage/project.rb +58 -6
- data/lib/google/cloud/storage/service.rb +59 -7
- data/lib/google/cloud/storage/version.rb +1 -1
- metadata +7 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 37d818583b06d396a9b237a24187b677bb5261c31e3a139714ef4f8fd868e4ec
|
4
|
+
data.tar.gz: d8ed3812b144e20a747c79147fd26642a7f8d4c9a5e017e925144f9e33afa717
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 519fe7bc2cf869c804bbfac6ce300b300f99f065a594673d36cf344b3cacff1ff1fb4eec086903ddcbc4a4be108c66082f05d539ef9508570d43ec9c678893be
|
7
|
+
data.tar.gz: a82b8ddd47b64d71c5035491a87021912419213538a0b2105de3facf4a09aac927379b1c980e5612629426cc7e0ec5de3590480fcdc265fb1bdf172f28d1be05
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,20 @@
|
|
1
1
|
# Release History
|
2
2
|
|
3
|
+
### 1.56.0 (2025-04-21)
|
4
|
+
|
5
|
+
#### Features
|
6
|
+
|
7
|
+
* move_object within hns bucket ([#29391](https://github.com/googleapis/google-cloud-ruby/issues/29391))
|
8
|
+
|
9
|
+
### 1.55.0 (2025-02-13)
|
10
|
+
|
11
|
+
#### Features
|
12
|
+
|
13
|
+
* Soft deleted Bucket Restore ([#28138](https://github.com/googleapis/google-cloud-ruby/issues/28138))
|
14
|
+
#### Documentation
|
15
|
+
|
16
|
+
* updating the encryption key GCS sample ([#28815](https://github.com/googleapis/google-cloud-ruby/issues/28815))
|
17
|
+
|
3
18
|
### 1.54.0 (2024-12-11)
|
4
19
|
|
5
20
|
#### Features
|
@@ -72,7 +72,8 @@ module Google
|
|
72
72
|
return nil unless next?
|
73
73
|
ensure_service!
|
74
74
|
gapi = @service.list_buckets prefix: @prefix, token: @token,
|
75
|
-
max: @max, user_project: @user_project
|
75
|
+
max: @max, user_project: @user_project,
|
76
|
+
soft_deleted: @soft_deleted
|
76
77
|
Bucket::List.from_gapi gapi, @service, @prefix, @max,
|
77
78
|
user_project: @user_project
|
78
79
|
end
|
@@ -146,7 +147,7 @@ module Google
|
|
146
147
|
# @private New Bucket::List from a Google API Client
|
147
148
|
# Google::Apis::StorageV1::Buckets object.
|
148
149
|
def self.from_gapi gapi_list, service, prefix = nil, max = nil,
|
149
|
-
user_project: nil
|
150
|
+
user_project: nil, soft_deleted: nil
|
150
151
|
buckets = new(Array(gapi_list.items).map do |gapi_object|
|
151
152
|
Bucket.from_gapi gapi_object, service, user_project: user_project
|
152
153
|
end)
|
@@ -155,6 +156,7 @@ module Google
|
|
155
156
|
buckets.instance_variable_set :@prefix, prefix
|
156
157
|
buckets.instance_variable_set :@max, max
|
157
158
|
buckets.instance_variable_set :@user_project, user_project
|
159
|
+
buckets.instance_variable_set :@soft_deleted, soft_deleted
|
158
160
|
buckets
|
159
161
|
end
|
160
162
|
|
@@ -982,7 +982,7 @@ module Google
|
|
982
982
|
#
|
983
983
|
def uniform_bucket_level_access= new_uniform_bucket_level_access
|
984
984
|
@gapi.iam_configuration ||= API::Bucket::IamConfiguration.new
|
985
|
-
@gapi.iam_configuration.uniform_bucket_level_access ||=
|
985
|
+
@gapi.iam_configuration.uniform_bucket_level_access ||=
|
986
986
|
API::Bucket::IamConfiguration::UniformBucketLevelAccess.new
|
987
987
|
@gapi.iam_configuration.uniform_bucket_level_access.enabled = new_uniform_bucket_level_access
|
988
988
|
patch_gapi! :iam_configuration
|
@@ -2280,6 +2280,31 @@ module Google
|
|
2280
2280
|
end
|
2281
2281
|
end
|
2282
2282
|
|
2283
|
+
# Fetches generation of the bucket
|
2284
|
+
# @example
|
2285
|
+
# require "google/cloud/storage"
|
2286
|
+
# storage = Google::Cloud::Storage.new
|
2287
|
+
# bucket = storage.bucket "my-bucket"
|
2288
|
+
# generation= bucket.generation
|
2289
|
+
def generation
|
2290
|
+
@gapi.generation
|
2291
|
+
end
|
2292
|
+
|
2293
|
+
# Fetches soft_delete_time of a soft deleted bucket
|
2294
|
+
# @example
|
2295
|
+
# bucket.delete
|
2296
|
+
# bucket.soft_delete_time
|
2297
|
+
def soft_delete_time
|
2298
|
+
@gapi.soft_delete_time
|
2299
|
+
end
|
2300
|
+
|
2301
|
+
# Fetches hard_delete_time of a soft deleted bucket
|
2302
|
+
# @example
|
2303
|
+
# bucket.hard_delete_time
|
2304
|
+
def hard_delete_time
|
2305
|
+
@gapi.hard_delete_time
|
2306
|
+
end
|
2307
|
+
|
2283
2308
|
##
|
2284
2309
|
# Generate a PostObject that includes the fields and URL to
|
2285
2310
|
# upload objects via HTML forms.
|
@@ -3118,6 +3143,51 @@ module Google
|
|
3118
3143
|
end
|
3119
3144
|
alias refresh! reload!
|
3120
3145
|
|
3146
|
+
##
|
3147
|
+
# Moves File from source to destination path within the same HNS-enabled bucket
|
3148
|
+
# This Operation is being performed at server side
|
3149
|
+
# @param [String] source_file The file name in existing bucket
|
3150
|
+
# @param [String] destination_file The new filename to be created on bucket
|
3151
|
+
# If the destination path includes non-existent parent folders, they will be created.
|
3152
|
+
# @example
|
3153
|
+
# require "google/cloud/storage"
|
3154
|
+
# storage = Google::Cloud::Storage.new
|
3155
|
+
# bucket = storage.bucket bucket_name, skip_lookup: true
|
3156
|
+
# bucket.move_file source_file_name, destination_file_name
|
3157
|
+
def move_file source_file,
|
3158
|
+
destination_file,
|
3159
|
+
if_generation_match: nil,
|
3160
|
+
if_generation_not_match: nil,
|
3161
|
+
if_metageneration_match: nil,
|
3162
|
+
if_metageneration_not_match: nil,
|
3163
|
+
if_source_generation_match: nil,
|
3164
|
+
if_source_generation_not_match: nil,
|
3165
|
+
if_source_metageneration_match: nil,
|
3166
|
+
if_source_metageneration_not_match: nil,
|
3167
|
+
user_project: nil,
|
3168
|
+
fields: nil,
|
3169
|
+
quota_user: nil,
|
3170
|
+
user_ip: nil,
|
3171
|
+
options: {}
|
3172
|
+
ensure_service!
|
3173
|
+
service.move_file name,
|
3174
|
+
source_file,
|
3175
|
+
destination_file,
|
3176
|
+
if_generation_match: if_generation_match,
|
3177
|
+
if_generation_not_match: if_generation_not_match,
|
3178
|
+
if_metageneration_match: if_metageneration_match,
|
3179
|
+
if_metageneration_not_match: if_metageneration_not_match,
|
3180
|
+
if_source_generation_match: if_source_generation_match,
|
3181
|
+
if_source_generation_not_match: if_source_generation_not_match,
|
3182
|
+
if_source_metageneration_match: if_source_metageneration_match,
|
3183
|
+
if_source_metageneration_not_match: if_source_metageneration_not_match,
|
3184
|
+
user_project: user_project,
|
3185
|
+
fields: fields,
|
3186
|
+
quota_user: quota_user,
|
3187
|
+
user_ip: user_ip,
|
3188
|
+
options: options
|
3189
|
+
end
|
3190
|
+
|
3121
3191
|
##
|
3122
3192
|
# Determines whether the bucket exists in the Storage service.
|
3123
3193
|
#
|
@@ -99,8 +99,7 @@ module Google
|
|
99
99
|
# @return [String] The service account email address.
|
100
100
|
#
|
101
101
|
def service_account_email
|
102
|
-
@service_account_email ||=
|
103
|
-
service.project_service_account.email_address
|
102
|
+
@service_account_email ||= service.project_service_account.email_address
|
104
103
|
end
|
105
104
|
|
106
105
|
##
|
@@ -193,11 +192,20 @@ module Google
|
|
193
192
|
# puts bucket.name
|
194
193
|
# end
|
195
194
|
#
|
196
|
-
|
195
|
+
# @example Retrieve soft deleted buckets
|
196
|
+
# require "google/cloud/storage"
|
197
|
+
#
|
198
|
+
# storage = Google::Cloud::Storage.new
|
199
|
+
#
|
200
|
+
# soft_deleted_buckets = storage.buckets soft_deleted: true
|
201
|
+
# soft_deleted_buckets.each do |bucket|
|
202
|
+
# puts bucket.name
|
203
|
+
# end
|
204
|
+
def buckets prefix: nil, token: nil, max: nil, user_project: nil, soft_deleted: nil
|
197
205
|
gapi = service.list_buckets \
|
198
|
-
prefix: prefix, token: token, max: max, user_project: user_project
|
206
|
+
prefix: prefix, token: token, max: max, user_project: user_project, soft_deleted: soft_deleted
|
199
207
|
Bucket::List.from_gapi \
|
200
|
-
gapi, service, prefix, max, user_project: user_project
|
208
|
+
gapi, service, prefix, max, user_project: user_project, soft_deleted: soft_deleted
|
201
209
|
end
|
202
210
|
alias find_buckets buckets
|
203
211
|
|
@@ -223,6 +231,10 @@ module Google
|
|
223
231
|
# account, transit costs will be billed to the given project. This
|
224
232
|
# parameter is required with requester pays-enabled buckets. The
|
225
233
|
# default is `nil`.
|
234
|
+
# @param [Integer] generation generation no of bucket
|
235
|
+
# on whether the bucket's current metageneration matches the given value.
|
236
|
+
# @param [Boolean] soft_deleted If true, returns the soft-deleted bucket.
|
237
|
+
# This parameter is required if generation is specified.
|
226
238
|
#
|
227
239
|
# The value provided will be applied to all operations on the returned
|
228
240
|
# bucket instance and its files.
|
@@ -256,9 +268,20 @@ module Google
|
|
256
268
|
# bucket = storage.bucket "other-project-bucket",
|
257
269
|
# user_project: "my-other-project"
|
258
270
|
# files = bucket.files # Billed to "my-other-project"
|
271
|
+
# @example With `soft_deleted` set to true and generation specified:
|
272
|
+
# require "google/cloud/storage"
|
273
|
+
#
|
274
|
+
# storage = Google::Cloud::Storage.new
|
275
|
+
#
|
276
|
+
# bucket = storage.bucket "my-bucket",
|
277
|
+
# soft_deleted: true,
|
278
|
+
# generation: 1234567889
|
279
|
+
# puts bucket.name
|
259
280
|
#
|
260
281
|
def bucket bucket_name,
|
261
282
|
skip_lookup: false,
|
283
|
+
generation: nil,
|
284
|
+
soft_deleted: nil,
|
262
285
|
if_metageneration_match: nil,
|
263
286
|
if_metageneration_not_match: nil,
|
264
287
|
user_project: nil
|
@@ -269,7 +292,10 @@ module Google
|
|
269
292
|
gapi = service.get_bucket bucket_name,
|
270
293
|
if_metageneration_match: if_metageneration_match,
|
271
294
|
if_metageneration_not_match: if_metageneration_not_match,
|
272
|
-
user_project: user_project
|
295
|
+
user_project: user_project,
|
296
|
+
soft_deleted: soft_deleted,
|
297
|
+
generation: generation
|
298
|
+
|
273
299
|
Bucket.from_gapi gapi, service, user_project: user_project
|
274
300
|
rescue Google::Cloud::NotFoundError
|
275
301
|
nil
|
@@ -554,6 +580,32 @@ module Google
|
|
554
580
|
max: max, user_project: user_project
|
555
581
|
end
|
556
582
|
|
583
|
+
##
|
584
|
+
# Restores a soft deleted bucket with bucket name and generation.
|
585
|
+
#
|
586
|
+
# @param [String] bucket_name Name of the bucket.
|
587
|
+
# @param [Fixnum] generation Generation of the bucket.
|
588
|
+
#
|
589
|
+
# @return [Google::Cloud::Storage::Bucket, nil] Returns nil if bucket
|
590
|
+
# does not exist
|
591
|
+
#
|
592
|
+
# @example
|
593
|
+
# require "google/cloud/storage"
|
594
|
+
#
|
595
|
+
# storage = Google::Cloud::Storage.new
|
596
|
+
# generation= 123
|
597
|
+
#
|
598
|
+
# bucket = storage.restore_bucket "my-bucket", generation
|
599
|
+
# puts bucket.name
|
600
|
+
#
|
601
|
+
def restore_bucket bucket_name,
|
602
|
+
generation,
|
603
|
+
options: {}
|
604
|
+
gapi = service.restore_bucket bucket_name, generation,
|
605
|
+
options: options
|
606
|
+
Bucket.from_gapi gapi, service
|
607
|
+
end
|
608
|
+
|
557
609
|
##
|
558
610
|
# Generates a signed URL. See [Signed
|
559
611
|
# URLs](https://cloud.google.com/storage/docs/access-control/signed-urls)
|
@@ -55,15 +55,14 @@ module Google
|
|
55
55
|
@credentials = credentials
|
56
56
|
@service = API::StorageService.new
|
57
57
|
@service.client_options.application_name = "gcloud-ruby"
|
58
|
-
@service.client_options.application_version =
|
59
|
-
Google::Cloud::Storage::VERSION
|
58
|
+
@service.client_options.application_version = Google::Cloud::Storage::VERSION
|
60
59
|
@service.client_options.open_timeout_sec = (open_timeout || timeout)
|
61
60
|
@service.client_options.read_timeout_sec = (read_timeout || timeout)
|
62
61
|
@service.client_options.send_timeout_sec = (send_timeout || timeout)
|
63
62
|
@service.client_options.transparent_gzip_decompression = false
|
64
63
|
@service.request_options.retries = retries || 3
|
65
64
|
@service.request_options.header ||= {}
|
66
|
-
@service.request_options.header["x-goog-api-client"] =
|
65
|
+
@service.request_options.header["x-goog-api-client"] =
|
67
66
|
"gl-ruby/#{RUBY_VERSION} gccl/#{Google::Cloud::Storage::VERSION}"
|
68
67
|
@service.request_options.header["Accept-Encoding"] = "gzip"
|
69
68
|
@service.request_options.quota_project = quota_project if quota_project
|
@@ -97,11 +96,12 @@ module Google
|
|
97
96
|
|
98
97
|
##
|
99
98
|
# Retrieves a list of buckets for the given project.
|
100
|
-
def list_buckets prefix: nil, token: nil, max: nil, user_project: nil, options: {}
|
99
|
+
def list_buckets prefix: nil, token: nil, max: nil, user_project: nil, soft_deleted: nil, options: {}
|
101
100
|
execute do
|
102
101
|
service.list_buckets \
|
103
102
|
@project, prefix: prefix, page_token: token, max_results: max,
|
104
|
-
user_project: user_project(user_project),
|
103
|
+
user_project: user_project(user_project),
|
104
|
+
soft_deleted: soft_deleted, options: options
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
@@ -112,12 +112,16 @@ module Google
|
|
112
112
|
if_metageneration_match: nil,
|
113
113
|
if_metageneration_not_match: nil,
|
114
114
|
user_project: nil,
|
115
|
+
soft_deleted: nil,
|
116
|
+
generation: nil,
|
115
117
|
options: {}
|
116
118
|
execute do
|
117
119
|
service.get_bucket bucket_name,
|
118
120
|
if_metageneration_match: if_metageneration_match,
|
119
121
|
if_metageneration_not_match: if_metageneration_not_match,
|
120
122
|
user_project: user_project(user_project),
|
123
|
+
soft_deleted: soft_deleted,
|
124
|
+
generation: generation,
|
121
125
|
options: options
|
122
126
|
end
|
123
127
|
end
|
@@ -626,6 +630,44 @@ module Google
|
|
626
630
|
end
|
627
631
|
end
|
628
632
|
|
633
|
+
##
|
634
|
+
# Moves file from source to destination path within bucket
|
635
|
+
def move_file name,
|
636
|
+
source_file,
|
637
|
+
destination_file,
|
638
|
+
if_generation_match: nil,
|
639
|
+
if_generation_not_match: nil,
|
640
|
+
if_metageneration_match: nil,
|
641
|
+
if_metageneration_not_match: nil,
|
642
|
+
if_source_generation_match: nil,
|
643
|
+
if_source_generation_not_match: nil,
|
644
|
+
if_source_metageneration_match: nil,
|
645
|
+
if_source_metageneration_not_match: nil,
|
646
|
+
user_project: nil,
|
647
|
+
fields: nil,
|
648
|
+
quota_user: nil,
|
649
|
+
user_ip: nil,
|
650
|
+
options: {}
|
651
|
+
execute do
|
652
|
+
service.move_object name,
|
653
|
+
source_file,
|
654
|
+
destination_file,
|
655
|
+
if_generation_match: if_generation_match,
|
656
|
+
if_generation_not_match: if_generation_not_match,
|
657
|
+
if_metageneration_match: if_metageneration_match,
|
658
|
+
if_metageneration_not_match: if_metageneration_not_match,
|
659
|
+
if_source_generation_match: if_source_generation_match,
|
660
|
+
if_source_generation_not_match: if_source_generation_not_match,
|
661
|
+
if_source_metageneration_match: if_source_metageneration_match,
|
662
|
+
if_source_metageneration_not_match: if_source_metageneration_not_match,
|
663
|
+
user_project: user_project(user_project),
|
664
|
+
fields: fields,
|
665
|
+
quota_user: quota_user,
|
666
|
+
user_ip: user_ip,
|
667
|
+
options: options
|
668
|
+
end
|
669
|
+
end
|
670
|
+
|
629
671
|
##
|
630
672
|
# Permanently deletes a file.
|
631
673
|
def delete_file bucket_name,
|
@@ -654,6 +696,17 @@ module Google
|
|
654
696
|
end
|
655
697
|
end
|
656
698
|
|
699
|
+
##
|
700
|
+
# Restore soft deleted bucket
|
701
|
+
def restore_bucket bucket_name,
|
702
|
+
generation,
|
703
|
+
options: {}
|
704
|
+
execute do
|
705
|
+
service.restore_bucket bucket_name, generation,
|
706
|
+
options: options
|
707
|
+
end
|
708
|
+
end
|
709
|
+
|
657
710
|
##
|
658
711
|
# Restores a soft-deleted object.
|
659
712
|
def restore_file bucket_name,
|
@@ -895,8 +948,7 @@ module Google
|
|
895
948
|
headers = (options[:header] ||= {})
|
896
949
|
headers["x-goog-#{source}encryption-algorithm"] = "AES256"
|
897
950
|
headers["x-goog-#{source}encryption-key"] = Base64.strict_encode64 key
|
898
|
-
headers["x-goog-#{source}encryption-key-sha256"] =
|
899
|
-
Base64.strict_encode64 key_sha256
|
951
|
+
headers["x-goog-#{source}encryption-key-sha256"] = Base64.strict_encode64 key_sha256
|
900
952
|
options
|
901
953
|
end
|
902
954
|
|
metadata
CHANGED
@@ -1,15 +1,14 @@
|
|
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.56.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Moore
|
8
8
|
- Chris Smith
|
9
|
-
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2025-04-21 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: google-cloud-core
|
@@ -57,16 +56,16 @@ dependencies:
|
|
57
56
|
name: google-apis-storage_v1
|
58
57
|
requirement: !ruby/object:Gem::Requirement
|
59
58
|
requirements:
|
60
|
-
- - "
|
59
|
+
- - ">="
|
61
60
|
- !ruby/object:Gem::Version
|
62
|
-
version: '0.
|
61
|
+
version: '0.42'
|
63
62
|
type: :runtime
|
64
63
|
prerelease: false
|
65
64
|
version_requirements: !ruby/object:Gem::Requirement
|
66
65
|
requirements:
|
67
|
-
- - "
|
66
|
+
- - ">="
|
68
67
|
- !ruby/object:Gem::Version
|
69
|
-
version: '0.
|
68
|
+
version: '0.42'
|
70
69
|
- !ruby/object:Gem::Dependency
|
71
70
|
name: googleauth
|
72
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -325,7 +324,6 @@ homepage: https://github.com/googleapis/google-cloud-ruby/tree/master/google-clo
|
|
325
324
|
licenses:
|
326
325
|
- Apache-2.0
|
327
326
|
metadata: {}
|
328
|
-
post_install_message:
|
329
327
|
rdoc_options: []
|
330
328
|
require_paths:
|
331
329
|
- lib
|
@@ -340,8 +338,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
340
338
|
- !ruby/object:Gem::Version
|
341
339
|
version: '0'
|
342
340
|
requirements: []
|
343
|
-
rubygems_version: 3.5
|
344
|
-
signing_key:
|
341
|
+
rubygems_version: 3.6.5
|
345
342
|
specification_version: 4
|
346
343
|
summary: API Client library for Google Cloud Storage
|
347
344
|
test_files: []
|