Class: Google::Cloud::Storage::Project
- Inherits:
-
Object
- Object
- Google::Cloud::Storage::Project
- Defined in:
- lib/google/cloud/storage/project.rb
Overview
# Project
Represents the project that storage buckets and files belong to. All data in Google Cloud Storage belongs inside a project. A project consists of a set of users, a set of APIs, billing, authentication, and monitoring settings for those APIs.
Google::Cloud::Storage::Project is the main object for interacting with Google Storage. Bucket objects are created, read, updated, and deleted by Google::Cloud::Storage::Project.
Instance Attribute Summary collapse
Class Method Summary collapse
Instance Method Summary collapse
-
#bucket(bucket_name) ⇒ Google::Cloud::Storage::Bucket?
(also: #find_bucket)
Retrieves bucket by name.
-
#buckets(prefix: nil, token: nil, max: nil) ⇒ Array<Google::Cloud::Storage::Bucket>
(also: #find_buckets)
Retrieves a list of buckets for the given project.
-
#create_bucket(bucket_name, acl: nil, default_acl: nil, location: nil, storage_class: nil, logging_bucket: nil, logging_prefix: nil, website_main: nil, website_404: nil, versioning: nil) {|bucket| ... } ⇒ Google::Cloud::Storage::Bucket
Creates a new bucket with optional attributes.
- #initialize(service) ⇒ Project constructor
-
#project ⇒ Object
The Storage project connected to.
Constructor Details
#initialize(service) ⇒ Project
59 60 61 |
# File 'lib/google/cloud/storage/project.rb', line 59 def initialize service @service = service end |
Instance Attribute Details
#service ⇒ Object
53 54 55 |
# File 'lib/google/cloud/storage/project.rb', line 53 def service @service end |
Class Method Details
Instance Method Details
#bucket(bucket_name) ⇒ Google::Cloud::Storage::Bucket? Also known as: find_bucket
Retrieves bucket by name.
157 158 159 160 161 162 |
# File 'lib/google/cloud/storage/project.rb', line 157 def bucket bucket_name gapi = service.get_bucket bucket_name Bucket.from_gapi gapi, service rescue Google::Cloud::NotFoundError nil end |
#buckets(prefix: nil, token: nil, max: nil) ⇒ Array<Google::Cloud::Storage::Bucket> Also known as: find_buckets
Retrieves a list of buckets for the given project.
133 134 135 136 137 |
# File 'lib/google/cloud/storage/project.rb', line 133 def buckets prefix: nil, token: nil, max: nil = { prefix: prefix, token: token, max: max } gapi = service.list_buckets Bucket::List.from_gapi gapi, service, prefix, max end |
#create_bucket(bucket_name, acl: nil, default_acl: nil, location: nil, storage_class: nil, logging_bucket: nil, logging_prefix: nil, website_main: nil, website_404: nil, versioning: nil) {|bucket| ... } ⇒ Google::Cloud::Storage::Bucket
Creates a new bucket with optional attributes. Also accepts a block for defining the CORS configuration for a static website served from the bucket. See Bucket::Cors for details.
The API call to create the bucket may be retried under certain conditions. See Google::Cloud#storage to control this behavior.
You can pass [website settings](cloud.google.com/storage/docs/website-configuration) for the bucket, including a block that defines CORS rule. See Bucket::Cors for details.
282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 |
# File 'lib/google/cloud/storage/project.rb', line 282 def create_bucket bucket_name, acl: nil, default_acl: nil, location: nil, storage_class: nil, logging_bucket: nil, logging_prefix: nil, website_main: nil, website_404: nil, versioning: nil new_bucket = Google::Apis::StorageV1::Bucket.new({ name: bucket_name, location: location, storage_class: storage_class_for(storage_class) }.delete_if { |_, v| v.nil? }) updater = Bucket::Updater.new(new_bucket).tap do |b| b.logging_bucket = logging_bucket unless logging_bucket.nil? b.logging_prefix = logging_prefix unless logging_prefix.nil? b.website_main = website_main unless website_main.nil? b.website_404 = website_404 unless website_404.nil? b.versioning = versioning unless versioning.nil? end yield updater if block_given? updater.check_for_mutable_cors! gapi = service.insert_bucket \ new_bucket, acl: acl_rule(acl), default_acl: acl_rule(default_acl) Bucket.from_gapi gapi, service end |
#project ⇒ Object
The Storage project connected to.
75 76 77 |
# File 'lib/google/cloud/storage/project.rb', line 75 def project service.project end |