Skip to main content

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

FieldRequiredTypeDescriptionExample
serviceAccountBase64YesTextGoogle Cloud service account JSON, encoded in Base64.The credentials file content, in Base64
bucketNameYesTextBucket name in Google Cloud Storage."my-lowflow-bucket"

4. Configuration / Supported Operations

FieldRequiredTypeDescriptionExample
operationYesText: UPLOAD_FILE, DOWNLOAD_FILE, LIST_BUCKET, DELETE_FILEOperation to run."UPLOAD_FILE"

UPLOAD_FILE — upload a file

FieldRequiredTypeDescriptionExample
fileYesTextName of the message property where the file to upload is."receipt"
storageObjectNameYesTextFile name in the destination bucket."receipts/2026/receipt-981.pdf"
generateDownloadUrlNoText ("true"/"false")If true, generates a signed download URL. Default value: "false"."true"
urlExpirationHoursNoNumberSigned URL validity, in hours. Default value: 24.48

DOWNLOAD_FILE — download a file

FieldRequiredTypeDescriptionExample
storageObjectNameYesTextName of the file in the bucket to download."receipts/2026/receipt-981.pdf"

LIST_BUCKET — list files

FieldRequiredTypeDescriptionExample
folderPrefixNoTextPrefix/folder used to filter the listing."receipts/2026/"

DELETE_FILE — remove a file

FieldRequiredTypeDescriptionExample
storageObjectNameYesTextName 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 / SymptomLikely CauseHow 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.