Google Cloud Storage

Send files into a GCS bucket using a service-account JSON key.

Last updated 2026-05-25

On this page

ZenTransfer writes to a Google Cloud Storage bucket using a service-account JSON key. Use when your downstream pipeline runs on Google Cloud, or when GCS is your archive of choice.

What you need

  • A Google Cloud project
  • A GCS bucket in that project
  • A service account with roles/storage.objectCreator (or stricter custom role) on the bucket
  • A JSON key file for the service account

Setup

Step 1: Create the bucket

In the Google Cloud Console:

  1. Open Cloud Storage → Buckets → Create
  2. Pick a region (single-region for cost; multi-region for resilience)
  3. Choose a storage class (Standard for active workflows; Nearline/Coldline for archival)
  4. Create the bucket

Step 2: Create a service account

  1. IAM & Admin → Service accounts → Create
  2. Name it (e.g. zentransfer-uploads)
  3. Grant Storage Object Creator on the target bucket (use bucket-level binding rather than project-wide)
  4. Create a JSON key and download it

Step 3: Configure in ZenTransfer

  1. Log in to your Dashboard
  2. Under Cloud Storage, find Google Cloud
  3. Enter: - Bucket name - Optional prefix - Paste the contents of the service-account JSON key
  4. Save and enable the destination

Step 4: Test

Upload one file and verify it lands in the bucket at prefix/filename.ext.

Object naming

The processed filename (after rename, if configured) becomes the object name. The optional prefix is prepended.

Storage classes and lifecycle

Set storage class on the bucket. ZenTransfer writes objects at the bucket's default class. For automatic transition to colder storage, configure GCS lifecycle rules in the Cloud Console — not in ZenTransfer.

Permissions checklist

If uploads fail:

  • Service account key is current (not deleted or expired)
  • Service account has Object Creator (or equivalent) on the bucket
  • Bucket name is correct (case-sensitive, no gs:// prefix in the field)
  • Bucket exists in a region you can reach from ZenTransfer's infrastructure

Common mistakes

  • Project-wide vs bucket-scoped binding — use bucket-scoped for least privilege
  • JSON key not pasted in full — partial paste truncates and fails authentication
  • Wrong service account — multiple service accounts in the project, easy to copy the wrong key