Class: Gcloud::Storage::Project
- Inherits:
-
Object
- Object
- Gcloud::Storage::Project
- Defined in:
- lib/gcloud/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.
Gcloud::Storage::Project is the main object for interacting with Google Storage. Gcloud::Storage::Bucket objects are created, read, updated, and deleted by Gcloud::Storage::Project.
require "gcloud"
gcloud = Gcloud.new
storage = gcloud.storage
bucket = storage.bucket "my-bucket"
file = bucket.file "path/to/my-file.ext"
See Gcloud#storage
Instance Attribute Summary collapse
-
#connection ⇒ Object
The Connection object.
Class Method Summary collapse
-
.default_project ⇒ Object
Default project.
Instance Method Summary collapse
-
#bucket(bucket_name) ⇒ Object
(also: #find_bucket)
Retrieves bucket by name.
-
#buckets(options = {}) ⇒ Object
(also: #find_buckets)
Retrieves a list of buckets for the given project.
-
#create_bucket(bucket_name, options = {}) ⇒ Object
Creates a new bucket.
-
#initialize(project, credentials) ⇒ Project
constructor
Creates a new Project instance.
-
#project ⇒ Object
The Storage project connected to.
Constructor Details
#initialize(project, credentials) ⇒ Project
Creates a new Project instance.
See Gcloud#storage
54 55 56 |
# File 'lib/gcloud/storage/project.rb', line 54 def initialize project, credentials #:nodoc: @connection = Connection.new project, credentials end |
Instance Attribute Details
#connection ⇒ Object
The Connection object.
48 49 50 |
# File 'lib/gcloud/storage/project.rb', line 48 def connection @connection end |
Class Method Details
.default_project ⇒ Object
Default project.
77 78 79 |
# File 'lib/gcloud/storage/project.rb', line 77 def self.default_project #:nodoc: ENV["STORAGE_PROJECT"] || ENV["GOOGLE_CLOUD_PROJECT"] end |
Instance Method Details
#bucket(bucket_name) ⇒ Object Also known as: find_bucket
175 176 177 178 179 180 181 182 183 |
# File 'lib/gcloud/storage/project.rb', line 175 def bucket bucket_name resp = connection.get_bucket bucket_name if resp.success? Bucket.from_gapi resp.data, connection else return nil if resp.data["error"]["code"] == 404 fail ApiError.from_response(resp) end end |
#buckets(options = {}) ⇒ Object Also known as: find_buckets
Retrieves a list of buckets for the given project.
Parameters
options-
An optional Hash for controlling additional behavior. (
Hash) options[:prefix]-
Filter results to buckets whose names begin with this prefix. (
String) options[:token]-
A previously-returned page token representing part of the larger set of results to view. (
String) options[:max]-
Maximum number of buckets to return. (
Integer)
Returns
Array of Gcloud::Storage::Bucket (Gcloud::Storage::Bucket::List)
Examples
require "gcloud"
gcloud = Gcloud.new
storage = gcloud.storage
buckets = storage.buckets
buckets.each do |bucket|
puts bucket.name
end
You can also retrieve all buckets whose names begin with a prefix using the :prefix option:
require "gcloud"
gcloud = Gcloud.new
storage = gcloud.storage
user_buckets = storage.buckets prefix: "user-"
If you have a significant number of buckets, you may need to paginate through them: (See Bucket::List#token)
require "gcloud"
gcloud = Gcloud.new
storage = gcloud.storage
all_buckets = []
tmp_buckets = storage.buckets
while tmp_buckets.any? do
tmp_buckets.each do |bucket|
all_buckets << bucket
end
# break loop if no more buckets available
break if tmp_buckets.token.nil?
# get the next group of buckets
tmp_buckets = storage.buckets token: tmp_buckets.token
end
143 144 145 146 147 148 149 150 |
# File 'lib/gcloud/storage/project.rb', line 143 def buckets = {} resp = connection.list_buckets if resp.success? Bucket::List.from_resp resp, connection else fail ApiError.from_response(resp) end end |
#create_bucket(bucket_name, options = {}) ⇒ Object
Creates a new bucket.
Parameters
bucket_name-
Name of a bucket. (
String) options-
An optional Hash for controlling additional behavior. (
Hash) options[:retries]-
The number of times the API call should be retried. Default is Gcloud::Backoff.retries. (
Integer)
Returns
Gcloud::Storage::Bucket
Examples
require "gcloud"
gcloud = Gcloud.new
storage = gcloud.storage
bucket = storage.create_bucket "my-bucket"
The API call to create the bucket may be retried under certain conditions. See Gcloud::Backoff to control this behavior, or specify the wanted behavior in the call with the :retries: option:
require "gcloud"
gcloud = Gcloud.new
storage = gcloud.storage
bucket = storage.create_bucket "my-bucket", retries: 5
223 224 225 226 227 228 229 230 231 232 233 234 235 |
# File 'lib/gcloud/storage/project.rb', line 223 def create_bucket bucket_name, = {} [:acl] = Bucket::Acl.predefined_rule_for [:acl] default_acl = [:default_acl] default_acl = Bucket::DefaultAcl.predefined_rule_for default_acl [:default_acl] = default_acl resp = connection.insert_bucket bucket_name, if resp.success? Bucket.from_gapi resp.data, connection else fail ApiError.from_response(resp) end end |