> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alumio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Cloud Storage

> Provides access to Google Cloud storage.

export const FormField = ({property, label, required = false, diType, uiPatterns, children}) => {
  const patterns = Array.isArray(uiPatterns) ? uiPatterns : uiPatterns ? [uiPatterns] : [];
  return <div style={{
    margin: '1.5rem 0'
  }}>
      <div style={{
    display: 'flex',
    alignItems: 'baseline',
    flexWrap: 'wrap',
    gap: '0.5rem',
    marginBottom: '0.25rem'
  }}>
        <strong>{label}</strong>
        <span style={{
    fontSize: '0.7rem',
    fontWeight: 600,
    textTransform: 'uppercase',
    letterSpacing: '0.04em',
    color: required ? '#6241f5' : '#6b7280'
  }}>
          {required ? 'Required' : 'Optional'}
        </span>
      </div>

      <div>{children}</div>

      {diType || patterns.length > 0 ? <p style={{
    fontSize: '0.85rem',
    color: '#6b7280',
    marginBottom: 0
  }}>
          {diType ? <>
              See the <a href={`/references/${diType}`}>{diType}</a> reference.{' '}
            </> : null}
          {patterns.length > 0 ? <>
              Accepts a <a href={`/documentation/placeholders-and-patterns/patterns#${patterns[0]}`}>pattern</a>.
            </> : null}
        </p> : null}
    </div>;
};

Connect Alumio to a Google Cloud Storage bucket and use it like a filesystem: read files from it and write files to it. Use this whenever a task needs to pick up files from, or drop files into, Google Cloud Storage, for example exports, product images, or incoming data feeds. Alumio signs in with a Google Cloud service account, so you supply that account's project, identity, and key here.

This documentation describes: [Schema](/schemas/filesystem/gcloud)

## Fields

<FormField property="client.projectId" label="Project ID" required>
  The identifier of the Google Cloud project the bucket belongs to.
</FormField>

<FormField property="client.keyFile" label="Credentials" required>
  The service account credentials Alumio signs in with. These are the values from the service account key file you download from Google Cloud (the JSON key). The fields below make up these credentials.
</FormField>

<FormField property="client.keyFile.type" label="Credential type">
  The kind of credential being used, taken from the key file. For a downloaded service account key this is `service_account`.
</FormField>

<FormField property="client.keyFile.private_key_id" label="Private key identifier">
  The identifier of the private key, taken from the key file.
</FormField>

<FormField property="client.keyFile.private_key" label="Private key">
  The private key itself, taken from the key file. It is a multi-line block that starts with `-----BEGIN PRIVATE KEY-----` and ends with `-----END PRIVATE KEY-----`. Keep this confidential.
</FormField>

<FormField property="client.keyFile.client_email" label="Client email address">
  The email address of the service account, taken from the key file.
</FormField>

<FormField property="client.keyFile.client_id" label="Client ID">
  The identifier of the service account, taken from the key file.
</FormField>

<FormField property="client.keyFile.auth_uri" label="Authentication URL">
  The URL used to sign in, taken from the key file, for example `https://accounts.google.com/o/oauth2/auth`.
</FormField>

<FormField property="client.keyFile.token_uri" label="Token URL">
  The URL used to exchange the credentials for an access token, taken from the key file, for example `https://oauth2.googleapis.com/token`.
</FormField>

<FormField property="client.keyFile.auth_provider_x509_cert_url" label="Google X.509 certificate URL">
  The address of Google's public certificate store, taken from the key file, for example `https://www.googleapis.com/oauth2/v1/certs`.
</FormField>

<FormField property="client.keyFile.client_x509_cert_url" label="X.509 certificate URL">
  The address of the service account's own certificate, taken from the key file.
</FormField>

<FormField property="bucket" label="Bucket" required>
  The name of the Google Cloud Storage bucket Alumio reads from and writes to.
</FormField>

<FormField property="logger" label="Logger" diType="filesystem-logger">
  Selects how file activity on this connection is recorded, so you can trace which files were read or written.
</FormField>

## Sample data

A connection to a bucket named `acme-exports`, signing in with a service account. The credential values come straight from the service account key file downloaded from Google Cloud.

| Field                | Value                                                 |
| -------------------- | ----------------------------------------------------- |
| Project ID           | `your-project-id`                                     |
| Credential type      | `service_account`                                     |
| Client email address | `integration@your-project-id.iam.gserviceaccount.com` |
| Bucket               | `acme-exports`                                        |

```json Configuration theme={null}
{
  "prototype": "gcloud",
  "parameters": {
    "client": {
      "projectId": "your-project-id",
      "keyFile": {
        "type": "service_account",
        "project_id": "your-project-id",
        "private_key_id": "your-private-key-id",
        "private_key": "-----BEGIN PRIVATE KEY-----\nyour-private-key\n-----END PRIVATE KEY-----\n",
        "client_email": "integration@your-project-id.iam.gserviceaccount.com",
        "client_id": "your-client-id",
        "auth_uri": "https://accounts.google.com/o/oauth2/auth",
        "token_uri": "https://oauth2.googleapis.com/token",
        "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
        "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/integration%40your-project-id.iam.gserviceaccount.com"
      }
    },
    "bucket": "acme-exports"
  }
}
```
