# Google Cloud Storage (GCS) Node

A tool node for interacting with Google Cloud Storage buckets.

## Authentication

This node uses the shared RocketRide Google Cloud authentication logic. You can authenticate by either:
1. Uploading a **Service Account JSON Key**.
2. Leaving the key blank and relying on **Application Default Credentials (ADC)** if your RocketRide server is hosted on Google Cloud Run, GKE, or a Compute Engine VM with attached service accounts.

## Usage

When placed in a pipeline as a tool node, the LLM can:
- **`list_files`**: List objects in the configured bucket (with optional prefix filtering).
- **`download_file`**: Download an object from the bucket to a temporary local file on the server.

Downloaded files are written under a temp path returned as `local_path`. Only the **most recent download is retained**; starting a new download deletes the previous temp file. Remaining files are also deleted in `endGlobal` when the node shuts down. Objects larger than `maxDownloadBytes` (default 50 MiB) are rejected before download, and the downloaded size is checked again after the fetch in case the object changed.

<!-- ROCKETRIDE:GENERATED:PARAMS START -->
<!-- Generated by nodes:docs-generate. Do not edit by hand. -->

## Schema

| Field | Type | Description | Default |
|---|---|---|---|
| `gcs.bucketName` | `string` | **Bucket Name**<br/>The Google Cloud Storage bucket name. |  |
| `gcs.maxDownloadBytes` | `integer` | **Max Download Bytes**<br/>Reject downloads larger than this many bytes (default 50 MiB). Protects server disk from oversized objects. | `52428800` |
| `gcs.prefix` | `string` | **Path Prefix**<br/>Optional path prefix inside the bucket. |  |
| `gcs.profile` | `string` |  | `"default"` |

## Dependencies

- `google-auth` `>=2.23.3`
- `google-cloud-storage` `>=2.13.0`

## Source

[<svg viewBox="0 0 16 16" width="15" height="15" fill="currentColor" aria-hidden="true" style="vertical-align:-0.15em;margin-right:0.35em"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg> View source](https://github.com/rocketride-org/rocketride-server/tree/develop/nodes/src/nodes/tool_gcs)
<!-- ROCKETRIDE:GENERATED:PARAMS END -->
