Docs / Strand / connectors/gcp-storage

Google Cloud Storage

Direction: Read / Write | Type: gcp.storage

Google Cloud Storage connector for uploading and downloading objects from Cloud Storage buckets.

Required Permissions

The service account must have the following IAM permissions (or predefined roles):

Operation Required Permissions Predefined Role
upload storage.objects.create Storage Object Creator
download storage.objects.get Storage Object Viewer
Both storage.objects.create, storage.objects.get Storage Object Admin
Tip: Grant roles at the bucket level for least privilege rather than at the project level.

Operations

Operation Direction Description
upload Write Upload data to a Cloud Storage bucket
download Read Read an object's contents into the workflow as JSON
Info

The download operation reads object content into the node's output payload as JSON. It does not download or save files to disk.

Connector Configuration

Field Required Default Description
Authentication Type No api_key api_key for explicit credentials, role to use Application Default Credentials (ADC)
Project ID Yes - Google Cloud project ID
Credentials JSON Conditional - Service account JSON credentials (encrypted). Required when Authentication Type is api_key
Bucket Name No - Default bucket name (can be overridden at node level)
Role-Based Authentication

When using role authentication, the connector uses Application Default Credentials (ADC) from the host environment. No explicit service account JSON is needed.

Node Configuration

Field Required Description
Operation Yes upload or download
Bucket Name No Bucket name (overrides connector default)
Blob Name Depends Object name/path. Auto-generated for uploads if not specified. Required for downloads.

Output

upload

json

{
  "success": true,
  "status": "uploaded",
  "data": {
    "bucket": "my-bucket",
    "blob_name": "path/to/file.json"
  },
  "service": "gcp.storage",
  "operation": "upload"
}

download

json

{
  "success": true,
  "status": "downloaded",
  "data": {
    "bucket": "my-bucket",
    "blob_name": "path/to/file.json",
    "content": {"your": "data"}
  },
  "service": "gcp.storage",
  "operation": "download"
}

Example

Connector Setup:

json

{
  "project_id": "my-gcp-project",
  "credentials_json": "{...service account JSON...}",
  "bucket_name": "workflow-data"
}

Connector Setup (role-based):

json

{
  "auth_type": "role",
  "project_id": "my-gcp-project",
  "bucket_name": "workflow-data"
}

Node Configuration (upload):