google-cloud-storage 1.16.0 → 1.17.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 +6 -0
- data/lib/google/cloud/storage/bucket.rb +109 -12
- data/lib/google/cloud/storage/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 99549b865b9a4222f87a79ca84f7bfb6f9291e48284fd27a8be32cd91a7fe6d5
|
4
|
+
data.tar.gz: b4aee052f8aa4f56caa8c37ddd1d8cac51ad562f85f8bb1b14f9166bc7d65bd2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 02ff1dab5acafa5b56ee161c1cae21fabd901f6e6edecd802d511c17732d8f837ac4e723babed90feaf2c54054880a36e908302b5ea64dc308e86107858fcc39
|
7
|
+
data.tar.gz: d154a90c24ae673416bb3759d040bb9299cd3a6c53b53b3406a4fe663b525cda298b5fc69da041e828cb7503faf3f7f4380e878bfb3a01dc4b962f71e7ec2b1f
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# Release History
|
2
2
|
|
3
|
+
### 1.17.0 / 2019-02-07
|
4
|
+
|
5
|
+
* Add support for Bucket Policy Only with `Bucket#policy_only?`,
|
6
|
+
`Bucket#policy_only=` and `Bucket#policy_only_locked_at`.
|
7
|
+
Read more at https://cloud.google.com/storage/docs/bucket-policy-only
|
8
|
+
|
3
9
|
### 1.16.0 / 2019-02-01
|
4
10
|
|
5
11
|
* Make use of Credentials#project_id
|
@@ -42,6 +42,10 @@ module Google
|
|
42
42
|
#
|
43
43
|
class Bucket
|
44
44
|
include Convert
|
45
|
+
##
|
46
|
+
# @private Alias to the Google Client API module
|
47
|
+
API = Google::Apis::StorageV1
|
48
|
+
|
45
49
|
##
|
46
50
|
# @private The Service object.
|
47
51
|
attr_accessor :service
|
@@ -82,7 +86,7 @@ module Google
|
|
82
86
|
# @private Create an empty Bucket object.
|
83
87
|
def initialize
|
84
88
|
@service = nil
|
85
|
-
@gapi =
|
89
|
+
@gapi = API::Bucket.new
|
86
90
|
@user_project = nil
|
87
91
|
end
|
88
92
|
|
@@ -300,7 +304,7 @@ module Google
|
|
300
304
|
# @param [String] logging_bucket The bucket to hold the logging output
|
301
305
|
#
|
302
306
|
def logging_bucket= logging_bucket
|
303
|
-
@gapi.logging ||=
|
307
|
+
@gapi.logging ||= API::Bucket::Logging.new
|
304
308
|
@gapi.logging.log_bucket = logging_bucket
|
305
309
|
patch_gapi! :logging
|
306
310
|
end
|
@@ -329,7 +333,7 @@ module Google
|
|
329
333
|
# @param [String] logging_prefix The logging object prefix.
|
330
334
|
#
|
331
335
|
def logging_prefix= logging_prefix
|
332
|
-
@gapi.logging ||=
|
336
|
+
@gapi.logging ||= API::Bucket::Logging.new
|
333
337
|
@gapi.logging.log_object_prefix = logging_prefix
|
334
338
|
patch_gapi! :logging
|
335
339
|
end
|
@@ -381,7 +385,7 @@ module Google
|
|
381
385
|
# for the bucket.
|
382
386
|
#
|
383
387
|
def versioning= new_versioning
|
384
|
-
@gapi.versioning ||=
|
388
|
+
@gapi.versioning ||= API::Bucket::Versioning.new
|
385
389
|
@gapi.versioning.enabled = new_versioning
|
386
390
|
patch_gapi! :versioning
|
387
391
|
end
|
@@ -411,7 +415,7 @@ module Google
|
|
411
415
|
# @param [String] website_main The main page suffix.
|
412
416
|
#
|
413
417
|
def website_main= website_main
|
414
|
-
@gapi.website ||=
|
418
|
+
@gapi.website ||= API::Bucket::Website.new
|
415
419
|
@gapi.website.main_page_suffix = website_main
|
416
420
|
patch_gapi! :website
|
417
421
|
end
|
@@ -459,7 +463,7 @@ module Google
|
|
459
463
|
# How to Host a Static Website
|
460
464
|
#
|
461
465
|
def website_404= website_404
|
462
|
-
@gapi.website ||=
|
466
|
+
@gapi.website ||= API::Bucket::Website.new
|
463
467
|
@gapi.website.not_found_page = website_404
|
464
468
|
patch_gapi! :website
|
465
469
|
end
|
@@ -501,7 +505,7 @@ module Google
|
|
501
505
|
# # Project#bucket or Project#buckets to access this bucket.
|
502
506
|
#
|
503
507
|
def requester_pays= new_requester_pays
|
504
|
-
@gapi.billing ||=
|
508
|
+
@gapi.billing ||= API::Bucket::Billing.new
|
505
509
|
@gapi.billing.requester_pays = new_requester_pays
|
506
510
|
patch_gapi! :billing
|
507
511
|
end
|
@@ -549,7 +553,7 @@ module Google
|
|
549
553
|
# bucket.default_kms_key = kms_key_name
|
550
554
|
#
|
551
555
|
def default_kms_key= new_default_kms_key
|
552
|
-
@gapi.encryption =
|
556
|
+
@gapi.encryption = API::Bucket::Encryption.new \
|
553
557
|
default_kms_key_name: new_default_kms_key
|
554
558
|
patch_gapi! :encryption
|
555
559
|
end
|
@@ -604,8 +608,7 @@ module Google
|
|
604
608
|
if new_retention_period.nil?
|
605
609
|
@gapi.retention_policy = nil
|
606
610
|
else
|
607
|
-
@gapi.retention_policy ||=
|
608
|
-
Google::Apis::StorageV1::Bucket::RetentionPolicy.new
|
611
|
+
@gapi.retention_policy ||= API::Bucket::RetentionPolicy.new
|
609
612
|
@gapi.retention_policy.retention_period = new_retention_period
|
610
613
|
end
|
611
614
|
|
@@ -757,6 +760,100 @@ module Google
|
|
757
760
|
true
|
758
761
|
end
|
759
762
|
|
763
|
+
##
|
764
|
+
# Whether the bucket's file IAM configuration enables Bucket Policy
|
765
|
+
# Only. The default is false. This value can be modified by calling
|
766
|
+
# {Bucket#policy_only=}.
|
767
|
+
#
|
768
|
+
# If true, access checks only use bucket-level IAM policies or above,
|
769
|
+
# all object ACLs within the bucket are no longer evaluated, and
|
770
|
+
# access-control is configured solely through the bucket's IAM policy.
|
771
|
+
# Any requests which attempt to use the ACL API to view or manipulate
|
772
|
+
# ACLs will fail with 400 errors.
|
773
|
+
#
|
774
|
+
# @return [Boolean] Returns `false` if the bucket has no IAM
|
775
|
+
# configuration or if Bucket Policy Only is not enabled in the IAM
|
776
|
+
# configuration. Returns `true` if Bucket Policy Only is enabled in
|
777
|
+
# the IAM configuration.
|
778
|
+
#
|
779
|
+
# @example
|
780
|
+
# require "google/cloud/storage"
|
781
|
+
#
|
782
|
+
# storage = Google::Cloud::Storage.new
|
783
|
+
#
|
784
|
+
# bucket = storage.bucket "my-bucket"
|
785
|
+
#
|
786
|
+
# bucket.policy_only = true
|
787
|
+
# bucket.policy_only? # true
|
788
|
+
#
|
789
|
+
def policy_only?
|
790
|
+
return false unless @gapi.iam_configuration &&
|
791
|
+
@gapi.iam_configuration.bucket_policy_only
|
792
|
+
!@gapi.iam_configuration.bucket_policy_only.enabled.nil? &&
|
793
|
+
@gapi.iam_configuration.bucket_policy_only.enabled
|
794
|
+
end
|
795
|
+
|
796
|
+
##
|
797
|
+
# If enabled, access checks only use bucket-level IAM policies or above,
|
798
|
+
# all object ACLs within the bucket are no longer evaluated, and
|
799
|
+
# access-control is configured solely through the bucket's IAM policy.
|
800
|
+
# Any requests which attempt to use the ACL API to view or manipulate
|
801
|
+
# ACLs will fail with 400 errors.
|
802
|
+
#
|
803
|
+
# @param [Boolean] new_policy_only When set to `true`, Bucket Policy
|
804
|
+
# Only is enabled in the bucket's IAM configuration.
|
805
|
+
#
|
806
|
+
# @example
|
807
|
+
# require "google/cloud/storage"
|
808
|
+
#
|
809
|
+
# storage = Google::Cloud::Storage.new
|
810
|
+
#
|
811
|
+
# bucket = storage.bucket "my-bucket"
|
812
|
+
#
|
813
|
+
# bucket.policy_only = true
|
814
|
+
# bucket.policy_only? # true
|
815
|
+
#
|
816
|
+
# bucket.default_acl.public! # Google::Cloud::InvalidArgumentError
|
817
|
+
#
|
818
|
+
# # The deadline for disabling Bucket Policy Only.
|
819
|
+
# puts bucket.policy_only_locked_at
|
820
|
+
#
|
821
|
+
def policy_only= new_policy_only
|
822
|
+
@gapi.iam_configuration ||= API::Bucket::IamConfiguration.new \
|
823
|
+
bucket_policy_only: \
|
824
|
+
API::Bucket::IamConfiguration::BucketPolicyOnly.new
|
825
|
+
@gapi.iam_configuration.bucket_policy_only.enabled = new_policy_only
|
826
|
+
patch_gapi! :iam_configuration
|
827
|
+
end
|
828
|
+
|
829
|
+
##
|
830
|
+
# The deadline time for disabling Bucket Policy Only by calling
|
831
|
+
# {Bucket#policy_only=}. After the locked time the Bucket Policy Only
|
832
|
+
# setting cannot be changed from true to false. Corresponds to the
|
833
|
+
# property `locked_time`.
|
834
|
+
#
|
835
|
+
# @return [DateTime, nil] The deadline time for changing
|
836
|
+
# {Bucket#policy_only=} from true to false, or `nil` if
|
837
|
+
# {Bucket#policy_only?} is false.
|
838
|
+
#
|
839
|
+
# @example
|
840
|
+
# require "google/cloud/storage"
|
841
|
+
#
|
842
|
+
# storage = Google::Cloud::Storage.new
|
843
|
+
#
|
844
|
+
# bucket = storage.bucket "my-bucket"
|
845
|
+
#
|
846
|
+
# bucket.policy_only = true
|
847
|
+
#
|
848
|
+
# # The deadline for disabling Bucket Policy Only.
|
849
|
+
# puts bucket.policy_only_locked_at
|
850
|
+
#
|
851
|
+
def policy_only_locked_at
|
852
|
+
return nil unless @gapi.iam_configuration &&
|
853
|
+
@gapi.iam_configuration.bucket_policy_only
|
854
|
+
@gapi.iam_configuration.bucket_policy_only.locked_time
|
855
|
+
end
|
856
|
+
|
760
857
|
##
|
761
858
|
# Updates the bucket with changes made in the given block in a single
|
762
859
|
# PATCH request. The following attributes may be set: {#cors},
|
@@ -1243,7 +1340,7 @@ module Google
|
|
1243
1340
|
user_project: user_project }
|
1244
1341
|
destination_gapi = nil
|
1245
1342
|
if block_given?
|
1246
|
-
destination_gapi =
|
1343
|
+
destination_gapi = API::Object.new
|
1247
1344
|
updater = File::Updater.new destination_gapi
|
1248
1345
|
yield updater
|
1249
1346
|
updater.check_for_changed_metadata!
|
@@ -1910,7 +2007,7 @@ module Google
|
|
1910
2007
|
patch_args = Hash[attributes.map do |attr|
|
1911
2008
|
[attr, @gapi.send(attr)]
|
1912
2009
|
end]
|
1913
|
-
patch_gapi =
|
2010
|
+
patch_gapi = API::Bucket.new patch_args
|
1914
2011
|
@gapi = service.patch_bucket name, patch_gapi,
|
1915
2012
|
user_project: user_project
|
1916
2013
|
@lazy = nil
|
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.17.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: 2019-02-
|
12
|
+
date: 2019-02-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: google-cloud-core
|
@@ -31,14 +31,14 @@ dependencies:
|
|
31
31
|
requirements:
|
32
32
|
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '0.
|
34
|
+
version: '0.26'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: '0.
|
41
|
+
version: '0.26'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: googleauth
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|