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 for a requester pays bucket and its files.
Instance Method Summary collapse
-
#add_owner(entity, generation: nil) ⇒ Object
Grants owner permission to the file.
-
#add_reader(entity, generation: nil) ⇒ Object
Grants reader permission to the file.
-
#auth! ⇒ Object
(also: #authenticatedRead!, #auth_read!, #authenticated!, #authenticated_read!)
Convenience method to apply the
authenticatedReadpredefined ACL rule to the file. -
#delete(entity, generation: nil) ⇒ Object
Permanently deletes the entity from the file's access control list.
-
#owner_full! ⇒ Object
(also: #bucketOwnerFullControl!)
Convenience method to apply the
bucketOwnerFullControlpredefined ACL rule to the file. -
#owner_read! ⇒ Object
(also: #bucketOwnerRead!)
Convenience method to apply the
bucketOwnerReadpredefined ACL rule to the file. -
#owners ⇒ Array<String>
Lists the owners of the file.
-
#private! ⇒ Object
Convenience method to apply the
privatepredefined ACL rule to the file. -
#project_private! ⇒ Object
(also: #projectPrivate!)
Convenience method to apply the
projectPrivatepredefined ACL rule to the file. -
#public! ⇒ 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 for a requester pays
bucket and its files. If this attribute is set to true, transit
costs for operations on the file 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 the that project. 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.
The requester pays feature is currently available only to whitelisted projects.
See also Bucket#requester_pays= and Bucket#requester_pays to enable requester pays for a bucket.
73 74 75 |
# File 'lib/google/cloud/storage/file/acl.rb', line 73 def user_project @user_project end |
Instance Method Details
#add_owner(entity, generation: nil) ⇒ Object
Grants owner permission to the file.
189 190 191 192 193 194 195 196 |
# File 'lib/google/cloud/storage/file/acl.rb', line 189 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 unless @owners.nil? entity end |
#add_reader(entity, generation: nil) ⇒ Object
Grants reader permission to the file.
238 239 240 241 242 243 244 245 |
# File 'lib/google/cloud/storage/file/acl.rb', line 238 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 unless @readers.nil? entity end |
#auth! ⇒ Object Also known as: authenticatedRead!, auth_read!, authenticated!, authenticated_read!
Convenience method to apply the authenticatedRead predefined ACL
rule to the file.
306 307 308 |
# File 'lib/google/cloud/storage/file/acl.rb', line 306 def auth! update_predefined_acl! "authenticatedRead" end |
#delete(entity, generation: nil) ⇒ Object
Permanently deletes the entity from the file's access control list.
276 277 278 279 280 281 282 283 |
# File 'lib/google/cloud/storage/file/acl.rb', line 276 def delete entity, generation: nil @service.delete_file_acl \ @bucket, @file, entity, generation: generation, user_project: user_project @owners.delete entity unless @owners.nil? @readers.delete entity unless @readers.nil? true end |
#owner_full! ⇒ Object Also known as: bucketOwnerFullControl!
Convenience method to apply the bucketOwnerFullControl predefined
ACL rule to the file.
328 329 330 |
# File 'lib/google/cloud/storage/file/acl.rb', line 328 def owner_full! update_predefined_acl! "bucketOwnerFullControl" end |
#owner_read! ⇒ Object Also known as: bucketOwnerRead!
Convenience method to apply the bucketOwnerRead predefined ACL
rule to the file.
347 348 349 |
# File 'lib/google/cloud/storage/file/acl.rb', line 347 def owner_read! update_predefined_acl! "bucketOwnerRead" end |
#owners ⇒ Array<String>
Lists the owners of the file.
124 125 126 127 |
# File 'lib/google/cloud/storage/file/acl.rb', line 124 def owners reload! if @owners.nil? @owners end |
#private! ⇒ Object
Convenience method to apply the private predefined ACL
rule to the file.
366 367 368 |
# File 'lib/google/cloud/storage/file/acl.rb', line 366 def private! update_predefined_acl! "private" end |
#project_private! ⇒ Object Also known as: projectPrivate!
Convenience method to apply the projectPrivate predefined ACL
rule to the file.
384 385 386 |
# File 'lib/google/cloud/storage/file/acl.rb', line 384 def project_private! update_predefined_acl! "projectPrivate" end |
#public! ⇒ Object Also known as: publicRead!, public_read!
Convenience method to apply the publicRead predefined ACL
rule to the file.
403 404 405 |
# File 'lib/google/cloud/storage/file/acl.rb', line 403 def public! update_predefined_acl! "publicRead" end |
#readers ⇒ Array<String>
Lists the readers of the file.
144 145 146 147 |
# File 'lib/google/cloud/storage/file/acl.rb', line 144 def readers reload! if @readers.nil? @readers end |
#reload! ⇒ Object Also known as: refresh!
Reloads all Access Control List data for the file.
100 101 102 103 104 105 106 |
# File 'lib/google/cloud/storage/file/acl.rb', line 100 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 |