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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 67fa1effce117003750f759eba79de92380616365652f2a19ba49b1986c75634
4
- data.tar.gz: 9729e6dc51f15a9a5e2e0370771f980908f9d6284973503c9c4d4c1e561b8d84
3
+ metadata.gz: 37d818583b06d396a9b237a24187b677bb5261c31e3a139714ef4f8fd868e4ec
4
+ data.tar.gz: d8ed3812b144e20a747c79147fd26642a7f8d4c9a5e017e925144f9e33afa717
5
5
  SHA512:
6
- metadata.gz: ec9022c921c0714ebf7f47131c745c113bb0480a34a376ca10055ccdee024821a518d1a87f742486118d7fb3e570beaeef5746f12676d5790e6ae697439dabd9
7
- data.tar.gz: d5e57fd75d565a8328cf79ce42374883e4da7f875c7fd9571e928f9648c05578bee5743d68465819f3e5d488469d277749aecebd44810198fd1a1ca0cac6f3c3
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
- def buckets prefix: nil, token: nil, max: nil, user_project: nil
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), options: options
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
 
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module Storage
19
- VERSION = "1.54.0".freeze
19
+ VERSION = "1.56.0".freeze
20
20
  end
21
21
  end
22
22
  end
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.54.0
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: 2024-12-11 00:00:00.000000000 Z
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.38'
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.38'
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.23
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: []