Saltearse al contenido

Google Cloud Storage

Abrir un namespace

import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "/etc/gcs-key.json"
import namidb as tg
client = tg.Client("gs://my-bucket/data?ns=prod")

O fijar el path del service-account por URI:

client = tg.Client(
"gs://my-bucket?ns=prod&service_account=/etc/gcs-key.json"
)

Permisos

El service account necesita:

  • storage.objects.get
  • storage.objects.create
  • storage.objects.delete
  • storage.objects.list

El rol pre-construido Storage Object User cubre los cuatro.

Workload Identity (GKE / Cloud Run)

Cuando NamiDB corre dentro de GCP, preferir Workload Identity Federation sobre una clave JSON de larga duración. NamiDB toma la identidad federada a través de la cadena estándar de GOOGLE_APPLICATION_CREDENTIALS — no hace falta config específica de NamiDB.

Conditional writes

GCS soporta el header x-goog-if-generation-match, que object_store mapea a las mismas semánticas de conditional-write que NamiDB usa en S3. Los mismos invariantes de single-writer-per-namespace + epoch-CAS aplican.

Ver también