Google Cloud Storage (GCS) Volumes

This page contains information on configuring a volume that is associated with a repository in Google Cloud storage.

πŸ‘

For a step-by-step tutorial on the process of creating and using a volume associated with an AWS S3 bucket, please see the Google Cloud storage tutorial.

Authorization

Authorization for the CGC to read from (and, optionally, write to) a Google Cloud storage bucket associated with a volume is provided by authenticating with a Google Cloud service account that has access to the bucket.

The Google Cloud storage tutorial explains the process of configuring a volume associated with a Google Cloud storage repository in detail. In short, the process is:

  1. Create a Google Cloud service account that has access to the repository associated with your volume. This account should be:
    (a) A Reader account for read-only volumes, or or Writer account for read-write volumes;
    (b) A Reader account on the objects within those bucket(s).
  2. Submit the Google Cloud service account credentials (email address and private key) in the storage.credentials object in the API request to create the volume. For the syntax of this object, see below.

Google Cloud Storage-specific volume parameters

When making the API request to create a new volume , you must submit a service array. In the case that the volume is associated with Google Cloud storage, the values of the parameters in the service object are as follows:

Google Cloud Platform service parameterDescription of value
service.typeThis should be be set to gcs.
service.bucketThe name of the Google Cloud storage bucket.
service.root_url
default: https://www.googleapis.com/
The endpoint to use when talking to Google Cloud storage.
service.prefix
default: empty
If provided, the value of this parameter will be used to modify any object key before an operation is performed on the bucket.
Even though Google Cloud Platform is not truly a folder-based store and allows for almost arbitrarily named keys, the prefix is treated as a folder name. This means that after applying the prefix to the name of the object the resulting key will be normalized to conform to the standard path-based naming schema for files.
For example, if you set the prefix for a volume to "a10", and import a file with source.location set to "test.fastq" from the volume to the CGC, then the object that will be referred to by the newly-created alias will be "a10/test.fastq".
service.credentials.client_emailThe client email address for the Google Cloud service account to use for operations on this bucket.
service.credentials.private_keyThe private key for the Google Cloud service account to use for operations on this bucket.

Additional configuration

In certain situations, however, it may be necessary to set up additional configuration on the bucket itself. For details, please see the documentation on enabling cross-origin resource sharing (CORS).