Google Cloud Storage
1. Overview
The Google Cloud Storage component (google-storage) allows uploading, downloading, listing, and removing files in a Google Cloud Storage bucket.
Use it when the flow needs to store or retrieve files in the cloud. Works only as an output action.
2. Prerequisites
- A Google Cloud service account with permission to access the desired bucket.
- That service account's JSON, converted to Base64.
- The name of the bucket to use.
3. Authentication and Connection
| Field | Required | Type | Description | Example |
|---|---|---|---|---|
serviceAccountBase64 | Yes | Text | Google Cloud service account JSON, encoded in Base64. | The credentials file content, in Base64 |
bucketName | Yes | Text | Bucket name in Google Cloud Storage. | "my-lowflow-bucket" |
4. Configuration / Supported Operations
| Field | Required | Type | Description | Example |
|---|---|---|---|---|
operation | Yes | Text: UPLOAD_FILE, DOWNLOAD_FILE, LIST_BUCKET, DELETE_FILE | Operation to run. | "UPLOAD_FILE" |
UPLOAD_FILE — upload a file
| Field | Required | Type | Description | Example |
|---|---|---|---|---|
file | Yes | Text | Name of the message property where the file to upload is. | "receipt" |
storageObjectName | Yes | Text | File name in the destination bucket. | "receipts/2026/receipt-981.pdf" |
generateDownloadUrl | No | Text ("true"/"false") | If true, generates a signed download URL. Default value: "false". | "true" |
urlExpirationHours | No | Number | Signed URL validity, in hours. Default value: 24. | 48 |
DOWNLOAD_FILE — download a file
| Field | Required | Type | Description | Example |
|---|---|---|---|---|
storageObjectName | Yes | Text | Name of the file in the bucket to download. | "receipts/2026/receipt-981.pdf" |
LIST_BUCKET — list files
| Field | Required | Type | Description | Example |
|---|---|---|---|---|
folderPrefix | No | Text | Prefix/folder used to filter the listing. | "receipts/2026/" |
DELETE_FILE — remove a file
| Field | Required | Type | Description | Example |
|---|---|---|---|---|
storageObjectName | Yes | Text | Name of the file in the bucket to remove. | "receipts/2026/receipt-981.pdf" |
5. Practical Examples
Simple example: upload a receipt to the bucket, generating a download URL valid for 48 hours.
Input:
{
"receipt": "<file, made available by a previous step>"
}
Component configuration:
{
"componentName": "google-storage",
"configurations": {
"operation": "UPLOAD_FILE",
"serviceAccountBase64": "{$.secrets.gcpServiceAccountBase64}",
"bucketName": "my-lowflow-bucket",
"file": "receipt",
"storageObjectName": "receipts/2026/receipt-981.pdf",
"generateDownloadUrl": "true",
"urlExpirationHours": "48"
}
}
Response:
{
"uploaded": true,
"bucketName": "my-lowflow-bucket",
"objectName": "receipts/2026/receipt-981.pdf",
"downloadUrl": "https://storage.googleapis.com/...",
"urlExpirationHours": 48,
"urlExpiresAt": "2026-07-22T20:00:00Z"
}
Advanced example: list all files in a specific folder of the bucket.
Component configuration:
{
"componentName": "google-storage",
"configurations": {
"operation": "LIST_BUCKET",
"serviceAccountBase64": "{$.secrets.gcpServiceAccountBase64}",
"bucketName": "my-lowflow-bucket",
"folderPrefix": "receipts/2026/"
}
}
Response:
{
"files": [
{ "file": "receipts/2026/receipt-981.pdf", "size": 45820, "contentType": "application/pdf" },
{ "file": "receipts/2026/receipt-982.pdf", "size": 38210, "contentType": "application/pdf" }
]
}
6. Common Errors and Troubleshooting
| Error / Symptom | Likely Cause | How to Fix |
|---|---|---|
| "A operation is required but has not been configured." | The operation field wasn't filled in. | Fill in operation with one of the supported values. |
| "A service account is required but has not been configured." | The serviceAccountBase64 field wasn't filled in. | Fill in serviceAccountBase64 with the service account credential. |
| "A bucket name is required but has not been configured." | The bucketName field wasn't filled in. | Fill in bucketName with the bucket's name. |
| "A file is required but has not been configured." | The UPLOAD_FILE operation was used without the file field. | Fill in file with the name of the property that contains the file. |
| "A object name is required but has not been configured." | The storageObjectName field wasn't filled in. | Fill in storageObjectName with the object's path/name in the bucket. |
| "File [name] not found inside the execution context." | The file referenced in file isn't available in the message under that name. | Confirm a previous step made the file available under that exact name. |