Setting Up Google Cloud Storage

You can use a Cloud Storage bucket
to store and serve files, such as movies or images or other static content. This
document describes how to set up your environment to use the Google Cloud
Storage client library.

Setting up your project

Follow the instructions in
Creating a Guestbook
Application
to set up your environment, create a GCP project, and understand
how Python apps are structured in App Engine. Write down and save
your project ID for use with your application.

Activating a Cloud Storage bucket

To use Cloud Storage, you'll need to activate at least one bucket.
You might want to use the default bucket which provides the first 5GB of
storage for free. You can always activate and use another Cloud Storage
bucket if you want, but only the default bucket includes
the first 5GB of storage for free. The default bucket
also includes a free quota for Cloud Storage I/O operations. See
Pricing, quotas, and limits
for more details.

To activate the default Cloud Storage bucket for your app:

Click Create under Default Cloud Storage Bucket in the
App Engine settings page for your project.
Notice the name of this bucket: it is in the form <project-id>.appspot.com.

If you need more storage than the 5GB limit, you can
increase this by enabling billing for your project,
making this a paid bucket. You will be charged for storage over the 5GB limit.

If you want to activate one or more paid buckets, follow the instructions under
Creating a bucket to activate
them.

Note: When you create a default bucket, you also get a staging bucket
with the same name except that staging. is prepended to it. You can use this
staging bucket for temporary files used for staging and test purposes; it also
has a 5 GB limit, but it is automatically emptied on a weekly basis.

Setting bucket and object permissions

By default, when you create a bucket for your project, your app has all the
permissions required to read and write to it.

pip

Important:pip downloads and installs the
PyPi distribution
of the Google Cloud Storage client library. This distribution does not
include demo or test code. To obtain these files, clone or download the
library's GitHub repository.

Manual download

You can download a ZIP file containing the Google Cloud Storage client
library from GitHub:

Using the client library with the development app server

You can use the client library with the development server. However because
there is no local emulation of Cloud Storage, all requests to read and write
files must be sent over the Internet to an actual Cloud Storage bucket.

Run dev_appserver.py with the flag --default_gcs_bucket_name [BUCKET_NAME],
replacing [BUCKET_NAME] with the name of the Cloud Storage bucket you are
using.

This flag controls the bucket that will be returned when your application
calls file.DefaultBucketName(ctx).

Pricing, quotas, and limits

There are no bandwidth charges associated with making Google Cloud Storage
client library calls to Cloud Storage. However, there are
operations charges.
In addition, the calls count against your
URL fetch quota
as the library uses the URL Fetch service to interact with Cloud Storage.

Notice that Google Cloud Storage is a pay-to-use service;
you will be charged according to the Cloud Storage price sheet.

Alternative ways to access Cloud Storage

Instead of using the client library, you could use the following:

Cloud Storage Browser in the
Google Cloud Platform Console, which is useful for uploading objects quickly.

gsutil, which is a command-line tool for working with
files in Cloud Storage.