Class: Google::Cloud::Storage::File::Acl
- Inherits:
-
Object
- Object
- Google::Cloud::Storage::File::Acl
- Defined in:
- lib/google/cloud/storage/file/acl.rb
Overview
File Access Control List
Represents a File's 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, generation: nil) ⇒ String
Grants owner permission to the file.
-
#add_reader(entity, generation: nil) ⇒ String
Grants reader permission to the file.
-
#auth!(generation: nil, if_generation_match: nil, if_generation_not_match: nil, if_metageneration_match: nil, if_metageneration_not_match: nil) ⇒ Object
(also: #authenticatedRead!, #auth_read!, #authenticated!, #authenticated_read!)
Convenience method to apply the
authenticatedReadpredefined ACL rule to the file. -
#delete(entity, generation: nil) ⇒ Boolean
Permanently deletes the entity from the file's access control list.
-
#owner_full!(generation: nil, if_generation_match: nil, if_generation_not_match: nil, if_metageneration_match: nil, if_metageneration_not_match: nil) ⇒ Object
(also: #bucketOwnerFullControl!)
Convenience method to apply the
bucketOwnerFullControlpredefined ACL rule to the file. -
#owner_read!(generation: nil, if_generation_match: nil, if_generation_not_match: nil, if_metageneration_match: nil, if_metageneration_not_match: nil) ⇒ Object
(also: #bucketOwnerRead!)
Convenience method to apply the
bucketOwnerReadpredefined ACL rule to the file. -
#owners ⇒ Array<String>
Lists the owners of the file.
-
#private!(generation: nil, if_generation_match: nil, if_generation_not_match: nil, if_metageneration_match: nil, if_metageneration_not_match: nil) ⇒ Object
Convenience method to apply the
privatepredefined ACL rule to the file. -
#project_private!(generation: nil, if_generation_match: nil, if_generation_not_match: nil, if_metageneration_match: nil, if_metageneration_not_match: nil) ⇒ Object
(also: #projectPrivate!)
Convenience method to apply the
projectPrivatepredefined ACL rule to the file. -
#public!(generation: nil, if_generation_match: nil, if_generation_not_match: nil, if_metageneration_match: nil, if_metageneration_not_match: nil) ⇒ Object
(also: #publicRead!, #public_read!)
Convenience method to apply the
publicReadpredefined ACL rule to the file. -
#readers ⇒ Array<String>
Lists the readers of the file.
-
#reload! ⇒ Object
(also: #refresh!)
Reloads all Access Control List data for the file.
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 Bucket#requester_pays= and Bucket#requester_pays.
70 71 72 |
# File 'lib/google/cloud/storage/file/acl.rb', line 70 def user_project @user_project end |
Instance Method Details
#add_owner(entity, generation: nil) ⇒ String
Grants owner permission to the file.
188 189 190 191 192 193 194 195 |
# File 'lib/google/cloud/storage/file/acl.rb', line 188 def add_owner entity, generation: nil gapi = @service.insert_file_acl @bucket, @file, entity, "OWNER", generation: generation, user_project: user_project entity = gapi.entity @owners&.push entity entity end |
#add_reader(entity, generation: nil) ⇒ String
Grants reader permission to the file.
239 240 241 242 243 244 245 246 |
# File 'lib/google/cloud/storage/file/acl.rb', line 239 def add_reader entity, generation: nil gapi = @service.insert_file_acl @bucket, @file, entity, "READER", generation: generation, user_project: user_project entity = gapi.entity @readers&.push entity entity end |
#auth!(generation: nil, if_generation_match: nil, if_generation_not_match: nil, if_metageneration_match: nil, if_metageneration_not_match: nil) ⇒ Object Also known as: authenticatedRead!, auth_read!, authenticated!, authenticated_read!
Convenience method to apply the authenticatedRead predefined ACL
rule to the file.
326 327 328 329 330 331 332 333 334 335 336 337 |
# File 'lib/google/cloud/storage/file/acl.rb', line 326 def auth! generation: nil, if_generation_match: nil, if_generation_not_match: nil, if_metageneration_match: nil, if_metageneration_not_match: nil update_predefined_acl! "authenticatedRead", generation: generation, if_generation_match: if_generation_match, if_generation_not_match: if_generation_not_match, if_metageneration_match: , if_metageneration_not_match: end |
#delete(entity, generation: nil) ⇒ Boolean
Permanently deletes the entity from the file's access control list.
280 281 282 283 284 285 286 287 |
# File 'lib/google/cloud/storage/file/acl.rb', line 280 def delete entity, generation: nil @service.delete_file_acl \ @bucket, @file, entity, generation: generation, user_project: user_project @owners&.delete entity @readers&.delete entity true end |
#owner_full!(generation: nil, if_generation_match: nil, if_generation_not_match: nil, if_metageneration_match: nil, if_metageneration_not_match: nil) ⇒ Object Also known as: bucketOwnerFullControl!
Convenience method to apply the bucketOwnerFullControl predefined
ACL rule to the file.
373 374 375 376 377 378 379 380 381 382 383 384 |
# File 'lib/google/cloud/storage/file/acl.rb', line 373 def owner_full! generation: nil, if_generation_match: nil, if_generation_not_match: nil, if_metageneration_match: nil, if_metageneration_not_match: nil update_predefined_acl! "bucketOwnerFullControl", generation: generation, if_generation_match: if_generation_match, if_generation_not_match: if_generation_not_match, if_metageneration_match: , if_metageneration_not_match: end |
#owner_read!(generation: nil, if_generation_match: nil, if_generation_not_match: nil, if_metageneration_match: nil, if_metageneration_not_match: nil) ⇒ Object Also known as: bucketOwnerRead!
Convenience method to apply the bucketOwnerRead predefined ACL
rule to the file.
417 418 419 420 421 422 423 424 425 426 427 428 |
# File 'lib/google/cloud/storage/file/acl.rb', line 417 def owner_read! generation: nil, if_generation_match: nil, if_generation_not_match: nil, if_metageneration_match: nil, if_metageneration_not_match: nil update_predefined_acl! "bucketOwnerRead", generation: generation, if_generation_match: if_generation_match, if_generation_not_match: if_generation_not_match, if_metageneration_match: , if_metageneration_not_match: end |
#owners ⇒ Array<String>
Lists the owners of the file.
121 122 123 124 |
# File 'lib/google/cloud/storage/file/acl.rb', line 121 def owners reload! if @owners.nil? @owners end |
#private!(generation: nil, if_generation_match: nil, if_generation_not_match: nil, if_metageneration_match: nil, if_metageneration_not_match: nil) ⇒ Object
Convenience method to apply the private predefined ACL
rule to the file.
461 462 463 464 465 466 467 468 469 470 471 472 |
# File 'lib/google/cloud/storage/file/acl.rb', line 461 def private! generation: nil, if_generation_match: nil, if_generation_not_match: nil, if_metageneration_match: nil, if_metageneration_not_match: nil update_predefined_acl! "private", generation: generation, if_generation_match: if_generation_match, if_generation_not_match: if_generation_not_match, if_metageneration_match: , if_metageneration_not_match: end |
#project_private!(generation: nil, if_generation_match: nil, if_generation_not_match: nil, if_metageneration_match: nil, if_metageneration_not_match: nil) ⇒ Object Also known as: projectPrivate!
Convenience method to apply the projectPrivate predefined ACL
rule to the file.
504 505 506 507 508 509 510 511 512 513 514 515 |
# File 'lib/google/cloud/storage/file/acl.rb', line 504 def project_private! generation: nil, if_generation_match: nil, if_generation_not_match: nil, if_metageneration_match: nil, if_metageneration_not_match: nil update_predefined_acl! "projectPrivate", generation: generation, if_generation_match: if_generation_match, if_generation_not_match: if_generation_not_match, if_metageneration_match: , if_metageneration_not_match: end |
#public!(generation: nil, if_generation_match: nil, if_generation_not_match: nil, if_metageneration_match: nil, if_metageneration_not_match: nil) ⇒ Object Also known as: publicRead!, public_read!
Convenience method to apply the publicRead predefined ACL
rule to the file.
548 549 550 551 552 553 554 555 556 557 558 559 |
# File 'lib/google/cloud/storage/file/acl.rb', line 548 def public! generation: nil, if_generation_match: nil, if_generation_not_match: nil, if_metageneration_match: nil, if_metageneration_not_match: nil update_predefined_acl! "publicRead", generation: generation, if_generation_match: if_generation_match, if_generation_not_match: if_generation_not_match, if_metageneration_match: , if_metageneration_not_match: end |
#readers ⇒ Array<String>
Lists the readers of the file.
141 142 143 144 |
# File 'lib/google/cloud/storage/file/acl.rb', line 141 def readers reload! if @readers.nil? @readers end |
#reload! ⇒ Object Also known as: refresh!
Reloads all Access Control List data for the file.
97 98 99 100 101 102 103 |
# File 'lib/google/cloud/storage/file/acl.rb', line 97 def reload! gapi = @service.list_file_acls @bucket, @file, user_project: user_project acls = Array(gapi.items) @owners = entities_from_acls acls, "OWNER" @readers = entities_from_acls acls, "READER" end |