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 57 58 |
# File 'lib/gcloud/storage/project.rb', line 54 def initialize project, credentials #:nodoc: project = project.to_s # Always cast to a string fail ArgumentError, "project is missing" if project.empty? @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.
79 80 81 82 83 |
# File 'lib/gcloud/storage/project.rb', line 79 def self.default_project #:nodoc: ENV["STORAGE_PROJECT"] || ENV["GCLOUD_PROJECT"] || ENV["GOOGLE_CLOUD_PROJECT"] end |
Instance Method Details
#bucket(bucket_name) ⇒ Object Also known as: find_bucket
179 180 181 182 183 184 185 186 187 |
# File 'lib/gcloud/storage/project.rb', line 179 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
147 148 149 150 151 152 153 154 |
# File 'lib/gcloud/storage/project.rb', line 147 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
227 228 229 230 231 232 233 234 235 236 237 238 239 |
# File 'lib/gcloud/storage/project.rb', line 227 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 |