Class: Google::Cloud::Storage::Bucket::DefaultAcl
- Inherits:
-
Object
- Object
- Google::Cloud::Storage::Bucket::DefaultAcl
- Defined in:
- lib/google/cloud/storage/bucket/acl.rb
Overview
Bucket Default Access Control List
Represents a Bucket's Default Access Control List.
Instance Attribute Summary collapse
-
#user_project ⇒ Object
A boolean value or a project ID string to indicate the project to be billed for operations on the bucket and its files.
Instance Method Summary collapse
-
#add_owner(entity) ⇒ Object
Grants default owner permission to files in the bucket.
-
#add_reader(entity) ⇒ Object
Grants default reader permission to files in the bucket.
-
#auth! ⇒ Object
(also: #authenticatedRead!, #auth_read!, #authenticated!, #authenticated_read!)
Convenience method to apply the default
authenticatedRead
predefined ACL rule to files in the bucket. -
#delete(entity) ⇒ Object
Permanently deletes the entity from the bucket's default access control list for files.
-
#owner_full! ⇒ Object
(also: #bucketOwnerFullControl!)
Convenience method to apply the default
bucketOwnerFullControl
predefined ACL rule to files in the bucket. -
#owner_read! ⇒ Object
(also: #bucketOwnerRead!)
Convenience method to apply the default
bucketOwnerRead
predefined ACL rule to files in the bucket. -
#owners ⇒ Array<String>
Lists the default owners for files in the bucket.
-
#private! ⇒ Object
Convenience method to apply the default
private
predefined ACL rule to files in the bucket. -
#project_private! ⇒ Object
(also: #projectPrivate!)
Convenience method to apply the default
projectPrivate
predefined ACL rule to files in the bucket. -
#public! ⇒ Object
(also: #publicRead!, #public_read!)
Convenience method to apply the default
publicRead
predefined ACL rule to files in the bucket. -
#readers ⇒ Array<String>
Lists the default readers for files in the bucket.
-
#reload! ⇒ Object
(also: #refresh!)
Reloads all Default Access Control List data for the bucket.
Instance Attribute Details
#user_project ⇒ Object
A boolean value or a project ID string to indicate the project to
be billed for operations on the bucket and its files. If this
attribute is set to true
, transit costs for operations on the
bucket will be billed to the current project for this client. (See
Project#project for the ID of the current project.) If this
attribute is set to a project ID, and that project is authorized for
the currently authenticated service account, transit costs will be
billed to that project. This attribute is required with requester
pays-enabled buckets. The default is nil
.
In general, this attribute should be set when first retrieving the
owning bucket by providing the user_project
option to
Project#bucket.
See also Google::Cloud::Storage::Bucket#requester_pays= and Google::Cloud::Storage::Bucket#requester_pays.
501 502 503 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 501 def user_project @user_project end |
Instance Method Details
#add_owner(entity) ⇒ Object
Grants default owner permission to files in the bucket.
612 613 614 615 616 617 618 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 612 def add_owner entity gapi = @service.insert_default_acl @bucket, entity, "OWNER", user_project: user_project entity = gapi.entity @owners&.push entity entity end |
#add_reader(entity) ⇒ Object
Grants default reader permission to files in the bucket.
655 656 657 658 659 660 661 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 655 def add_reader entity gapi = @service.insert_default_acl @bucket, entity, "READER", user_project: user_project entity = gapi.entity @readers&.push entity entity end |
#auth! ⇒ Object Also known as: authenticatedRead!, auth_read!, authenticated!, authenticated_read!
Convenience method to apply the default authenticatedRead
predefined ACL rule to files in the bucket.
717 718 719 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 717 def auth! update_predefined_default_acl! "authenticatedRead" end |
#delete(entity) ⇒ Object
Permanently deletes the entity from the bucket's default access control list for files.
689 690 691 692 693 694 695 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 689 def delete entity @service.delete_default_acl @bucket, entity, user_project: user_project @owners&.delete entity @readers&.delete entity true end |
#owner_full! ⇒ Object Also known as: bucketOwnerFullControl!
Convenience method to apply the default bucketOwnerFullControl
predefined ACL rule to files in the bucket.
738 739 740 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 738 def owner_full! update_predefined_default_acl! "bucketOwnerFullControl" end |
#owner_read! ⇒ Object Also known as: bucketOwnerRead!
Convenience method to apply the default bucketOwnerRead
predefined ACL rule to files in the bucket.
756 757 758 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 756 def owner_read! update_predefined_default_acl! "bucketOwnerRead" end |
#owners ⇒ Array<String>
Lists the default owners for files in the bucket.
553 554 555 556 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 553 def owners reload! if @owners.nil? @owners end |
#private! ⇒ Object
Convenience method to apply the default private
predefined ACL rule to files in the bucket.
774 775 776 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 774 def private! update_predefined_default_acl! "private" end |
#project_private! ⇒ Object Also known as: projectPrivate!
Convenience method to apply the default projectPrivate
predefined ACL rule to files in the bucket.
791 792 793 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 791 def project_private! update_predefined_default_acl! "projectPrivate" end |
#public! ⇒ Object Also known as: publicRead!, public_read!
Convenience method to apply the default publicRead
predefined ACL rule to files in the bucket.
809 810 811 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 809 def public! update_predefined_default_acl! "publicRead" end |
#readers ⇒ Array<String>
Lists the default readers for files in the bucket.
572 573 574 575 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 572 def readers reload! if @readers.nil? @readers end |
#reload! ⇒ Object Also known as: refresh!
Reloads all Default Access Control List data for the bucket.
526 527 528 529 530 531 532 533 534 535 536 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 526 def reload! gapi = @service.list_default_acls @bucket, user_project: user_project acls = Array(gapi.items).map do |acl| next acl if acl.is_a? Google::Apis::StorageV1::ObjectAccessControl raise "Unknown ACL format: #{acl.class}" unless acl.is_a? Hash Google::Apis::StorageV1::ObjectAccessControl.from_json acl.to_json end @owners = entities_from_acls acls, "OWNER" @readers = entities_from_acls acls, "READER" end |