google-cloud-storage 1.51.0 → 1.53.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 +13 -0
- data/lib/google/cloud/storage/bucket.rb +56 -0
- data/lib/google/cloud/storage/file.rb +44 -0
- data/lib/google/cloud/storage/project.rb +7 -2
- data/lib/google/cloud/storage/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fe3e1f688d9b54f38ed678c881b0ad6b53f80d9a3f8983b23f2ea42939bb8c1d
|
|
4
|
+
data.tar.gz: 937a4544aa1f3497c62ec42c6c040cdc54be7eec8f8eb0a6a48825fc5adcd5c9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4fe5213423da8b342653278f41c9d00b45cfec9ed1e3d0bc451625390149e1f826ce7dff10e6d45bfddf80558f00a13814a0572193103c964d40b68217e44f2e
|
|
7
|
+
data.tar.gz: c7dcb018af799f2cbae6a3909377de03dca0127c642da171348c80be1f2870ee758c7d9f49d38035eded59b664713a7675aa775373793ea132bc220bdd47cbee
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Release History
|
|
2
2
|
|
|
3
|
+
### 1.53.0 (2024-12-04)
|
|
4
|
+
|
|
5
|
+
#### Features
|
|
6
|
+
|
|
7
|
+
* add integration test for universe domain ([#27384](https://github.com/googleapis/google-cloud-ruby/issues/27384))
|
|
8
|
+
* fetch file and bucket details from url ([#27322](https://github.com/googleapis/google-cloud-ruby/issues/27322))
|
|
9
|
+
|
|
10
|
+
### 1.52.0 (2024-05-31)
|
|
11
|
+
|
|
12
|
+
#### Features
|
|
13
|
+
|
|
14
|
+
* support for hierarchical namespace (folders) ([#25967](https://github.com/googleapis/google-cloud-ruby/issues/25967))
|
|
15
|
+
|
|
3
16
|
### 1.51.0 (2024-04-25)
|
|
4
17
|
|
|
5
18
|
#### Features
|
|
@@ -1253,6 +1253,62 @@ module Google
|
|
|
1253
1253
|
patch_gapi! :soft_delete_policy
|
|
1254
1254
|
end
|
|
1255
1255
|
|
|
1256
|
+
##
|
|
1257
|
+
# The bucket's hierarchical namespace (Folders) configuration.
|
|
1258
|
+
# This value can be modified by calling {#hierarchical_namespace=}.
|
|
1259
|
+
#
|
|
1260
|
+
# @return [Google::Apis::StorageV1::Bucket::HierarchicalNamespace]
|
|
1261
|
+
#
|
|
1262
|
+
# @example
|
|
1263
|
+
# require "google/cloud/storage"
|
|
1264
|
+
#
|
|
1265
|
+
# storage = Google::Cloud::Storage.new
|
|
1266
|
+
#
|
|
1267
|
+
# bucket = storage.bucket "my-bucket"
|
|
1268
|
+
#
|
|
1269
|
+
# bucket.hierarchical_namespace
|
|
1270
|
+
#
|
|
1271
|
+
def hierarchical_namespace
|
|
1272
|
+
@gapi.hierarchical_namespace
|
|
1273
|
+
end
|
|
1274
|
+
|
|
1275
|
+
##
|
|
1276
|
+
# Sets the value of Hierarchical Namespace (Folders) for the bucket.
|
|
1277
|
+
# This can only be enabled at bucket create time. If this is enabled,
|
|
1278
|
+
# Uniform Bucket-Level Access must also be enabled.
|
|
1279
|
+
# This value can be queried by calling {#hierarchical_namespace}.
|
|
1280
|
+
#
|
|
1281
|
+
# @param [Google::Apis::StorageV1::Bucket::HierarchicalNamespace,
|
|
1282
|
+
# Hash(String => String)] new_hierarchical_namespace The
|
|
1283
|
+
# bucket's new Hierarchical Namespace Configuration.
|
|
1284
|
+
#
|
|
1285
|
+
# @example Enabled Hierarchical Namespace using HierarchicalNamespace class:
|
|
1286
|
+
# require "google/cloud/storage"
|
|
1287
|
+
#
|
|
1288
|
+
# storage = Google::Cloud::Storage.new
|
|
1289
|
+
#
|
|
1290
|
+
# bucket = storage.bucket "my-bucket"
|
|
1291
|
+
#
|
|
1292
|
+
# hierarchical_namespace = Google::Apis::StorageV1::Bucket::HierarchicalNamespace.new
|
|
1293
|
+
# hierarchical_namespace.enabled = true
|
|
1294
|
+
#
|
|
1295
|
+
# bucket.hierarchical_namespace = hierarchical_namespace
|
|
1296
|
+
#
|
|
1297
|
+
# @example Disable Hierarchical Namespace using Hash:
|
|
1298
|
+
# require "google/cloud/storage"
|
|
1299
|
+
#
|
|
1300
|
+
# storage = Google::Cloud::Storage.new
|
|
1301
|
+
#
|
|
1302
|
+
# bucket = storage.bucket "my-bucket"
|
|
1303
|
+
#
|
|
1304
|
+
# hierarchical_namespace = { enabled: false }
|
|
1305
|
+
# bucket.hierarchical_namespace = hierarchical_namespace
|
|
1306
|
+
#
|
|
1307
|
+
def hierarchical_namespace= new_hierarchical_namespace
|
|
1308
|
+
@gapi.hierarchical_namespace = new_hierarchical_namespace || {}
|
|
1309
|
+
patch_gapi! :hierarchical_namespace
|
|
1310
|
+
end
|
|
1311
|
+
|
|
1256
1312
|
##
|
|
1257
1313
|
# Updates the bucket with changes made in the given block in a single
|
|
1258
1314
|
# PATCH request. The following attributes may be set: {#cors},
|
|
@@ -2081,6 +2081,50 @@ module Google
|
|
|
2081
2081
|
Google::Apis::StorageV1::Object.new(**attr_params)
|
|
2082
2082
|
end
|
|
2083
2083
|
|
|
2084
|
+
##
|
|
2085
|
+
# from_gs_url is a method to fetch bucket details and file details from a gs url
|
|
2086
|
+
#
|
|
2087
|
+
# @return [Hash(String => String)]
|
|
2088
|
+
#
|
|
2089
|
+
# @example Fetch bucket_name and file_Path from gs url:
|
|
2090
|
+
# require "google/cloud/storage"
|
|
2091
|
+
# gs_url= "gs://my-todo-app/avatars/heidi.jpeg"
|
|
2092
|
+
# file=Google::Cloud::Storage::File
|
|
2093
|
+
# file.from_gs_url(gs_url)
|
|
2094
|
+
# =>
|
|
2095
|
+
# {"bucket_name"=>"my-todo-app", "file_path"=>"avatars/heidi.jpeg"}
|
|
2096
|
+
#
|
|
2097
|
+
# @example Fetch bucket_name , file_Path and other query params from gs url:
|
|
2098
|
+
# require "google/cloud/storage"
|
|
2099
|
+
# gs_url= "gs://my-todo-app/test_sub_folder/heidi.jpeg?params1=test1¶ms2=test2"
|
|
2100
|
+
# file=Google::Cloud::Storage::File
|
|
2101
|
+
# file.from_gs_url(gs_url)
|
|
2102
|
+
# =>{
|
|
2103
|
+
# "bucket_name"=>"my-todo-app",
|
|
2104
|
+
# "file_path"=>"test_sub_folder/heidi.jpeg",
|
|
2105
|
+
# "options" => {
|
|
2106
|
+
# "params1"=>"test1",
|
|
2107
|
+
# "params2"=>"test2"
|
|
2108
|
+
# }
|
|
2109
|
+
# }
|
|
2110
|
+
|
|
2111
|
+
def self.from_gs_url gs_url
|
|
2112
|
+
prefix = "gs://".freeze
|
|
2113
|
+
raise ArgumentError, "Invalid GCS URL" unless gs_url.start_with? prefix
|
|
2114
|
+
# seprating params from input url
|
|
2115
|
+
path, query = gs_url.sub(prefix, "").split("?", 2)
|
|
2116
|
+
# parsing the url
|
|
2117
|
+
bucket_name, file_path = path.split "/", 2
|
|
2118
|
+
query_params = URI.decode_www_form(query).to_h if query
|
|
2119
|
+
url_items = {
|
|
2120
|
+
"bucket_name" => bucket_name,
|
|
2121
|
+
"file_path" => file_path
|
|
2122
|
+
}
|
|
2123
|
+
# adding url params to output hash
|
|
2124
|
+
url_items.merge! "options" => query_params if query
|
|
2125
|
+
url_items
|
|
2126
|
+
end
|
|
2127
|
+
|
|
2084
2128
|
protected
|
|
2085
2129
|
|
|
2086
2130
|
##
|
|
@@ -421,6 +421,7 @@ module Google
|
|
|
421
421
|
# b.lifecycle.add_set_storage_class_rule "COLDLINE", age: 10
|
|
422
422
|
# end
|
|
423
423
|
#
|
|
424
|
+
# rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
|
424
425
|
def create_bucket bucket_name,
|
|
425
426
|
acl: nil,
|
|
426
427
|
default_acl: nil,
|
|
@@ -435,11 +436,13 @@ module Google
|
|
|
435
436
|
requester_pays: nil,
|
|
436
437
|
user_project: nil,
|
|
437
438
|
autoclass_enabled: false,
|
|
438
|
-
enable_object_retention: nil
|
|
439
|
+
enable_object_retention: nil,
|
|
440
|
+
hierarchical_namespace: nil
|
|
439
441
|
params = {
|
|
440
442
|
name: bucket_name,
|
|
441
443
|
location: location,
|
|
442
|
-
custom_placement_config: custom_placement_config
|
|
444
|
+
custom_placement_config: custom_placement_config,
|
|
445
|
+
hierarchical_namespace: hierarchical_namespace
|
|
443
446
|
}.delete_if { |_, v| v.nil? }
|
|
444
447
|
new_bucket = Google::Apis::StorageV1::Bucket.new(**params)
|
|
445
448
|
storage_class = storage_class_for storage_class
|
|
@@ -452,6 +455,7 @@ module Google
|
|
|
452
455
|
b.website_404 = website_404 unless website_404.nil?
|
|
453
456
|
b.versioning = versioning unless versioning.nil?
|
|
454
457
|
b.requester_pays = requester_pays unless requester_pays.nil?
|
|
458
|
+
b.hierarchical_namespace = hierarchical_namespace unless hierarchical_namespace.nil?
|
|
455
459
|
end
|
|
456
460
|
yield updater if block_given?
|
|
457
461
|
updater.check_for_changed_labels!
|
|
@@ -463,6 +467,7 @@ module Google
|
|
|
463
467
|
enable_object_retention: enable_object_retention
|
|
464
468
|
Bucket.from_gapi gapi, service, user_project: user_project
|
|
465
469
|
end
|
|
470
|
+
# rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
|
466
471
|
|
|
467
472
|
##
|
|
468
473
|
# Creates a new HMAC key.
|
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.53.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: 2024-04
|
|
12
|
+
date: 2024-12-04 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: google-cloud-core
|
|
@@ -59,14 +59,14 @@ dependencies:
|
|
|
59
59
|
requirements:
|
|
60
60
|
- - "~>"
|
|
61
61
|
- !ruby/object:Gem::Version
|
|
62
|
-
version: '0.
|
|
62
|
+
version: '0.38'
|
|
63
63
|
type: :runtime
|
|
64
64
|
prerelease: false
|
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
|
66
66
|
requirements:
|
|
67
67
|
- - "~>"
|
|
68
68
|
- !ruby/object:Gem::Version
|
|
69
|
-
version: '0.
|
|
69
|
+
version: '0.38'
|
|
70
70
|
- !ruby/object:Gem::Dependency
|
|
71
71
|
name: googleauth
|
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -340,7 +340,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
340
340
|
- !ruby/object:Gem::Version
|
|
341
341
|
version: '0'
|
|
342
342
|
requirements: []
|
|
343
|
-
rubygems_version: 3.5.
|
|
343
|
+
rubygems_version: 3.5.22
|
|
344
344
|
signing_key:
|
|
345
345
|
specification_version: 4
|
|
346
346
|
summary: API Client library for Google Cloud Storage
|