---
title: "Soporte Google Cloud Storage en File Repository"
canonical: "https://onesaitplatform-es.refined.site/space/DOC/3700228099/Soporte%20Google%20Cloud%20Storage%20en%20File%20Repository"
format: markdown
---
# Objetivo

El File Repository es un componente de plataforma que permite subir y compartir ficheros desde plataforma, tanto desde el Control Panel como desde un API REST.

Hasta ahora, este componente era capaz de funcionar con GridFS cuando tenías MongoDB en la instalación, o con MinIO para instalaciones que usasen este sistema de ficheros distribuidos.

Se trata de soportar Google Cloud Storage como otro de los mecanismos sobre los que almacenar los ficheros gestionados por el File Repository. 

De esta forma, cuando un proyecto se despliegue sobre GCP, podrá usar esta persistencia. Esto se podrá configurar de forma sencilla en la instalación de plataforma.

Por otro lado, se aprovechará para unificar las UIs de gestión.

# Antes de empezar

Si tienes una instalación de Plataforma sobre GCP y quieres utilizar el Google Cloud Storage como File Repository, tienes que solicitar la activación de dicha funcionalidad. Para ello tendrás que seguir estos pasos:

- Crear una petición en el [buzón de soporte del equipo de infraestructura de la unidad de producto](https://servicedesk.onesait.com/servicedesk/customer/portal/64) solicitando:
  - Crear un bucket en el Google Cloud Storage del proyecto donde está desplegada la Plataforma.
  - Un fichero JSON con las claves necesarias para comunicar la Plataforma con el bucket de GCS. Este fichero se configurará como un secreto en el cluster de Kubernetes donde está desplegada la Plataforma.
- Una vez creado el equipo de soporte haya creado el bucket, te proporcionarán el nombre del bucket y tendrás que entrar en la Configuración Centralizada de la Plataforma a través de la opción de menú **Dev tools > Centralized Configuration** con el rol administrador, y editar la configuración **Platform** para modificar las siguientes propiedades:

```yaml
onesaitplatform:
   env:
      files:
         gcp-project-id: <gcp-project-id>
         gcp-bucket-onesaitplatform-development_onesaitplatform: <gcp-bucket-id>
```

Donde:

- **gpc-project-id** se corresponde con el identificador del proyecto de GCP en el cual se ha desplegado la Plataforma.
- **gcp-bucket-onesaitplatform-development_onesaitplatform** es el identificador del bucket que te facilite el equipo de soporte para el vertical/tenant por defecto.


- Una vez configurado, se deberá utilizar el fichero JSON antes mencionado para crear un secret en el clúster de Kubernetes (con nombre de la clave .dockerconfigjson).
- Por último, dicho secreto debe añadirse al controlpanel mapeándolo en el directorio /usr/local/gcp-credentials/.dockerconfigjson y añadiendo la siguiente variable al controlpanel:

> ℹ️ Para añadir la variable GOOGLE_APPLICATION_CREDENTIALS en local, habrá que ir a Run Configurations y añadirla como variable de entorno en el control panel, poniendo la ruta donde se encuentra el fichero.

## Configuración Multitenant

En el caso de que el modo multitenant esté habilitado y que se tengan varios verticales/tenants, hay que realizar las siguientes tareas adicionales:

- Crear una petición en el [buzón de soporte del equipo de infraestructura de la unidad de producto](https://servicedesk.onesait.com/servicedesk/customer/portal/64) solicitando:
  - Crear un bucket en el Google Cloud Storage del proyecto donde está desplegada la Plataforma para cada vertical-tenant.
- Añadir a la configuración centralizada los buckets nuevos con la siguiente nomenclatura:

`gcp-bucket-<vertical_name>-<tenant_name>`

# Implementación

Una vez configurado el Google Cloud Storage, ya puedes acceder a la nueva funcionalidad. Para ello, accede a la opción de menú **Dev Tools > My Files** y aparecerá un listado con las opciones disponibles para utilizar en el File Repository:

![image](media://3e00bbdb-f3de-4e20-8e4f-cb9acc68b137)

Selecciona la opción **Google Cloud Storage** y accederás al listado de los ficheros cargados en GCP. Para añadir un archivo, selecciona la opción **+** y rellena el formulario adjuntando el fichero que quieras subir:

![image](media://10f0ffcf-85cc-463e-ab96-1d1f642a321e)

El campo **Destination file path** es opcional y permite al usuario gestionar sus archivos dentro de una estructura de carpetas.

![image](media://232ec053-557c-4f82-8f7e-879977586f9d)

Una vez subido el archivo, se puede operar con él como con los ficheros subidos a MinIO o GridFS.

Por otro lado, está a disposición del usuario un API REST para utilizar esta funcionalidad:

![image](media://b41aeaff-8289-4c33-8148-d98cdfeb017c)

Se trata del mismo API que si utilizas GridFS, pero se ha añadido un nuevo campo opcional **repository** a las operaciones:

![image](media://7116d474-1de1-4aed-b871-282d5979afc9)

donde habrá que elegir la opción **GCP** si se quiere utilizar el Google Cloud Storage.

> ℹ️ Si no se especifica dicho campo, se cogerá **MONGO_GRIDFS **por defecto.