Google Cloud Storage
1. Visión General
El componente Google Cloud Storage (google-storage) permite subir, descargar, listar y eliminar archivos en un bucket de Google Cloud Storage.
Úsalo cuando el flujo necesita almacenar o recuperar archivos en la nube. Solo funciona como acción de salida.
2. Prerrequisitos
- Una cuenta de servicio (service account) de Google Cloud con permiso de acceso al bucket deseado.
- El JSON de esa cuenta de servicio, convertido a Base64.
- El nombre del bucket a usar.
3. Autenticación y Conexión
| Campo | Obligatorio | Tipo | Descripción | Ejemplo |
|---|---|---|---|---|
serviceAccountBase64 | Sí | Texto | JSON de la cuenta de servicio de Google Cloud, codificado en Base64. | El contenido del archivo de credenciales, en Base64 |
bucketName | Sí | Texto | Nombre del bucket en Google Cloud Storage. | "mi-bucket-lowflow" |
4. Configuración / Operaciones Soportadas
| Campo | Obligatorio | Tipo | Descripción | Ejemplo |
|---|---|---|---|---|
operation | Sí | Texto: UPLOAD_FILE, DOWNLOAD_FILE, LIST_BUCKET, DELETE_FILE | Operación a ejecutar. | "UPLOAD_FILE" |
UPLOAD_FILE — subir un archivo
| Campo | Obligatorio | Tipo | Descripción | Ejemplo |
|---|---|---|---|---|
file | Sí | Texto | Nombre de la propiedad del mensaje donde está el archivo a subir. | "comprobante" |
storageObjectName | Sí | Texto | Nombre del archivo en el bucket de destino. | "comprobantes/2026/comprobante-981.pdf" |
generateDownloadUrl | No | Texto ("true"/"false") | Si es true, genera una URL firmada de descarga. Valor por defecto: "false". | "true" |
urlExpirationHours | No | Número | Validez de la URL firmada, en horas. Valor por defecto: 24. | 48 |
DOWNLOAD_FILE — descargar un archivo
| Campo | Obligatorio | Tipo | Descripción | Ejemplo |
|---|---|---|---|---|
storageObjectName | Sí | Texto | Nombre del archivo en el bucket a descargar. | "comprobantes/2026/comprobante-981.pdf" |
LIST_BUCKET — listar archivos
| Campo | Obligatorio | Tipo | Descripción | Ejemplo |
|---|---|---|---|---|
folderPrefix | No | Texto | Prefijo/carpeta usado para filtrar el listado. | "comprobantes/2026/" |
DELETE_FILE — eliminar un archivo
| Campo | Obligatorio | Tipo | Descripción | Ejemplo |
|---|---|---|---|---|
storageObjectName | Sí | Texto | Nombre del archivo en el bucket a eliminar. | "comprobantes/2026/comprobante-981.pdf" |
5. Ejemplos Prácticos
Ejemplo simple: subir un comprobante al bucket, generando una URL de descarga válida por 48 horas.
Entrada:
{
"comprobante": "<archivo, provisto por un paso anterior>"
}
Configuración del componente:
{
"componentName": "google-storage",
"configurations": {
"operation": "UPLOAD_FILE",
"serviceAccountBase64": "{$.secrets.gcpServiceAccountBase64}",
"bucketName": "mi-bucket-lowflow",
"file": "comprobante",
"storageObjectName": "comprobantes/2026/comprobante-981.pdf",
"generateDownloadUrl": "true",
"urlExpirationHours": "48"
}
}
Respuesta:
{
"uploaded": true,
"bucketName": "mi-bucket-lowflow",
"objectName": "comprobantes/2026/comprobante-981.pdf",
"downloadUrl": "https://storage.googleapis.com/...",
"urlExpirationHours": 48,
"urlExpiresAt": "2026-07-22T20:00:00Z"
}
Ejemplo avanzado: listar todos los archivos de una carpeta específica del bucket.
Configuración del componente:
{
"componentName": "google-storage",
"configurations": {
"operation": "LIST_BUCKET",
"serviceAccountBase64": "{$.secrets.gcpServiceAccountBase64}",
"bucketName": "mi-bucket-lowflow",
"folderPrefix": "comprobantes/2026/"
}
}
Respuesta:
{
"files": [
{ "file": "comprobantes/2026/comprobante-981.pdf", "size": 45820, "contentType": "application/pdf" },
{ "file": "comprobantes/2026/comprobante-982.pdf", "size": 38210, "contentType": "application/pdf" }
]
}
6. Errores Comunes y Troubleshooting
| Error / Síntoma | Causa probable | Cómo resolverlo |
|---|---|---|
| "A operation is required but has not been configured." | El campo operation no fue completado. | Completar operation con uno de los valores soportados. |
| "A service account is required but has not been configured." | El campo serviceAccountBase64 no fue completado. | Completar serviceAccountBase64 con la credencial de la cuenta de servicio. |
| "A bucket name is required but has not been configured." | El campo bucketName no fue completado. | Completar bucketName con el nombre del bucket. |
| "A file is required but has not been configured." | Se usó la operación UPLOAD_FILE sin el campo file. | Completar file con el nombre de la propiedad que contiene el archivo. |
| "A object name is required but has not been configured." | El campo storageObjectName no fue completado. | Completar storageObjectName con la ruta/nombre del objeto en el bucket. |
| "File [nombre] not found inside the execution context." | El archivo referenciado en file no está disponible en el mensaje con ese nombre. | Confirmar que un paso anterior puso el archivo a disposición con ese nombre exacto. |