GC

Storage integration

# Google Cloud Storage + Transloadit

Connect Google Cloud Storage buckets to an Assembly with dedicated import and store Robots backed by a service-account credential.

Executable recipe

## Build the integration

This Template reads a Cloud Storage object, resizes it, and writes a private result under processed/.

1. Create a Cloud Storage bucket and a dedicated service account with bucket-level access.
2. Save its JSON key and project values as Template Credentials named my\_gcs\_credentials.
3. Paste the Instructions into a Template and start an Assembly from that Template.

### Template Instructions

```
{
  "steps": {
    "imported": {
      "robot": "/google/import",
      "credentials": "my_gcs_credentials",
      "path": "incoming/photo.jpg"
    },
    "resized": {
      "robot": "/image/resize",
      "use": "imported",
      "width": 1200,
      "height": 1200,
      "resize_strategy": "fit"
    },
    "exported": {
      "robot": "/google/store",
      "use": "resized",
      "credentials": "my_gcs_credentials",
      "acl": "private",
      "path": "processed/${file.url_name}"
    }
  }
}
```

## Authentication

* Create a dedicated Google Cloud service account and grant the bucket permissions required by the workflow.
* For this round-trip recipe, the service account needs to list and read the input object and create the output object. Overwriting an existing path also requires delete permission.
* Download the service-account JSON key once, upload it into Transloadit Template Credentials, and protect and rotate it as a long-lived credential.

## Limitations and operational notes

* Transloadit Template Credentials use an uploaded service-account JSON key; workload identity and Application Default Credentials are not available inside these Robots.
* The store Robot defaults to public-read. Set acl to private explicitly unless the object is intended to be public.
* Non-recursive directory imports only include direct descendants. Enable recursive and use pagination tokens for deeper or larger imports.

## Related Robots

* [/google/import](/docs/robots/google-import.md)\
  Import from Google Cloud
* [/image/resize](/docs/robots/image-resize.md)\
  Resize images
* [/google/store](/docs/robots/google-store.md)\
  Store in Google Cloud

## Documentation

* [Transloadit Google import documentation](/docs/robots/google-import.md)
* [Transloadit Google store documentation](/docs/robots/google-store.md)
* [Google Cloud Storage authentication documentation⁠](https://cloud.google.com/storage/docs/authentication)
  [Create a Template](/c/templates/new/)

More integrations

## Continue building your stack

S3

### [Amazon S3](/integrations/amazon-s3.md)

Import from and export to Amazon S3 with dedicated Robots.

R2

### [Cloudflare R2](/integrations/cloudflare-r2.md)

Process R2 objects with dedicated import and store Robots.

SB

### [Supabase](/integrations/supabase.md)

Connect Supabase Storage through its S3-compatible endpoint.
