- Home
- Resources
- Integrations
- Google Cloud Storage
Google Cloud Storage n8n integrationAutomate Google Cloud Storage with n8n.
Files pile up faster than anyone can move them by hand. The Google Cloud Storage n8n integration puts 10 operations and 2 resources, buckets and objects, inside a workflow. No trigger node ships with it, so a schedule or a webhook starts the run. Built for teams whose exports and renders land somewhere daily.
Verified Trustpilot reviews · AI, automation & growth agency
What does the Google Cloud Storage n8n integration actually do?
The node connects a workflow to the buckets of your Google Cloud project. It handles two kinds of things: buckets, which are the containers, and objects, which are the files inside them. The 10 operations cover create, read, update and delete on both, so one workflow can set up a bucket, write a file into it, adjust that file's metadata and clear it out later without anyone opening the Google Cloud Console.
Take a nightly export. A Schedule Trigger runs at a fixed time, a Postgres query pulls yesterday's orders, and object.create writes the result into a bucket under a dated name. Nothing else in the workflow needs to change when the export grows, since the same two fields, Bucket Name and Object Name, carry whatever the query returns.
Second case, rendering. A Google Sheets row lists the videos to produce, an HTTP Request node downloads the rendered file, and object.create stores it with Use Input Binary Field turned on. A follow-up object.update sets the metadata the browser reads when the file is served.
Third case, housekeeping. object.getAll lists what sits under a staging prefix, an IF node keeps the entries older than the cutoff, object.delete removes them one by one, and a message goes to Slack with the count. Run it weekly and the staging area stops growing on its own.
Credentials are made once in n8n and reused everywhere, so the same Google connection serves this node and every other Google node in the instance. When a workflow needs something the 10 catalogued operations don't cover, the HTTP Request node calls any Cloud Storage API endpoint and reuses that same credential through predefined authentication.
The node fits teams who already store in Google Cloud and want the file steps to stop being manual. If you are still comparing platforms before committing, the n8n review goes through the trade-offs, and n8n training covers building the first workflows end to end. Start with one file movement that someone currently does by hand, get it running, and add the next one on top of a credential that already works.
How do you connect Google Cloud Storage to n8n?
- 01
Pick the authentication method
The node accepts two credential types: OAuth2, and Service Account, marked as recommended in the list. OAuth2 connects as a person and is the easier of the two to set up. A service account connects as the workflow itself, which suits a pipeline that has to keep running when the person who built it is gone. Google's own guidance is to take OAuth2 for most cases and the service account when you know why you need one.
- 02
Create the OAuth2 credential
On n8n Cloud, Managed OAuth2 is available for some Google nodes: click Sign in with Google in the credential screen and nothing else is needed on the Google side. Otherwise, and always on a self-hosted instance, switch the dropdown to Custom OAuth2, create a Web application client in the Google Cloud Console, paste the OAuth Redirect URL shown by n8n into the Authorized redirect URIs, and bring the Client ID and Client Secret back.
- 03
Or hand over a service account key
In the Google Cloud Console, go to APIs & Services, then Credentials, and pick Create credentials, then Service account. Open the new account, go to the Keys tab, choose Add key, then Create new key, and select JSON. Google downloads the file. Open it, copy
client_emailinto Service Account Email in n8n, and copyprivate_keyinto Private Key.
What can the Google Cloud Storage node do?
The Google Cloud Storage node exposes 10 operations across 2 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
Operations index
Bucket
5 operationsCreate a new Bucket
bucket.createWhat you see in n8n
Notes & use cases
Creates a bucket in the Google Cloud project you name. That bucket becomes the destination every object operation later points at.
Key parameters
- Project ID: the project the bucket belongs to, taken from the project selector in the Google Cloud Console.
- Bucket Name: the name of the new bucket, reused as written in every object operation that follows.
- Location: where the bucket's data sits, one of the optional parameters and easier to set now than to revisit.
- Predefined ACL: a ready-made access rule for the bucket itself, from
privatetopublicRead.
Delete an empty Bucket
bucket.deleteWhat you see in n8n
Notes & use cases
Removes a bucket from the project. The wording matters: the bucket has to be empty, so an object.getAll and object.delete pass normally runs first.
Key parameters
- Bucket Name: the bucket to remove, spelled exactly as it was created.
- Metageneration Match: a filter that lets the call go through only if the bucket's metageneration value matches the one you send, which stops a delete that fires against a bucket someone edited in between.
Get a Bucket
bucket.getWhat you see in n8n
Notes & use cases
Returns the metadata of one bucket. Nothing is written, so it is the safe way to check a bucket's configuration before a workflow acts on it.
Key parameters
- Bucket Name: the bucket to read, often carried from an earlier node with an expression such as
{{ $json.field }}. - Projection:
fullreturns All Properties,noAclreturns the metadata without the access control entries, which keeps the item lighter for the nodes downstream.
Get a list of Buckets for a given project
bucket.getAllWhat you see in n8n
Notes & use cases
Lists the buckets of a project, one item per bucket, ready to loop over.
Key parameters
- Project ID: the project to inventory, the same identifier used when creating a bucket.
- Prefix: filters on bucket names, so a naming convention like a client code in front gives you that client's buckets and nothing else.
- Return All: on, n8n walks the API pages until every bucket has come back; off, it stops at the limit you set.
Update the metadata of a Bucket
bucket.updateWhat you see in n8n
Notes & use cases
Changes the settings of an existing bucket without touching a single file inside it.
Key parameters
- Bucket Name: the bucket to modify.
- Labels: user provided labels in key and value pairs, the usual way to tag a bucket with an owner, an environment or a cost centre.
- Versioning: the bucket's versioning configuration, sent as JSON.
Object
5 operationsCreate an object
object.createWhat you see in n8n
Notes & use cases
Writes a file into a bucket. It takes either a binary file already in the run or plain text composed in n8n.
Key parameters
- Bucket Name and Object Name: the destination and the file name, often built with an expression like
{{ $json.field }}. - Use Input Binary Field: turn it on when the content comes from a binary field, then name that field in Input Binary Field.
- File Content: the text to upload when there is no binary field, such as a CSV built in the workflow.
- Content Type: one of the Create Fields, it tells a browser what the file is.
Delete an object from a bucket
object.deleteWhat you see in n8n
Notes & use cases
Erases one file. Point it at a bucket and a name, and that entry is gone.
Key parameters
- Bucket Name: the bucket holding the file.
- Object Name: the exact name of the object, including any prefix that acts as a folder in the path.
- Generation: selects a specific revision of the chosen object, useful when a bucket keeps several versions of the same name.
Get object data or metadata
object.getWhat you see in n8n
Notes & use cases
Fetches one object, and you decide whether you want the file itself or the information about it.
Key parameters
- Bucket Name and Object Name: the file to read.
- Return Data:
jsongives the Metadata,mediagives the Object Data, which is the file content. - Put Output File in Field: the name of the output binary field the file lands in, so the next node can attach or transform it.
Get a list of objects
object.getAllWhat you see in n8n
Notes & use cases
Lists what a bucket contains, as one item per object.
Key parameters
- Bucket Name: the bucket to browse.
- Prefix: keeps only the names that start with this value, which is how you list a single folder.
- Return All and Limit: all the pages, or a maximum number of results per run.
- Delimiter: returns results in a directory-like mode, using this value as the separator.
Update an object's metadata
object.updateWhat you see in n8n
Notes & use cases
Rewrites the information attached to a file that is already stored. The bytes stay where they are.
Key parameters
- Bucket Name and Object Name: the object to edit.
- Cache Control: one of the Update Fields, it governs how the file is cached when it is served.
- Content Disposition: another Update Field, it drives how a browser presents the file.
- Metadata: custom JSON you attach to the object, the place to keep an internal reference.
object.getAll.Need help automating Google Cloud Storage with n8n?
A person reads every message.
Google Cloud Storage and n8n, the questions that come next
01Is the Google Cloud Storage n8n integration free?
02Which credentials does the Google Cloud Storage node need?
03What are the limits of the Google Cloud Storage node?
04Can a workflow react when a file is added to a bucket?
05n8n or Make for Google Cloud Storage?
Get our weekly integration tips.
No spam. Unsubscribe anytime.
