Necesito escribir un script de shell para transferir archivos a un bucket de GCS utilizando gsutil, pero no sé completamente cómo escribirlo. Por favor, explíquenme desde el principio.
#!/bin/bash
gsutil -m cp -r dir gs://my-bucket
Escribí este código para transferir archivos de una máquina a un bucket de GCS… pero creo que necesito configurar el proyecto y la cuenta de servicio… por favor dime el código para esto.
davy.ai
Para configurar su proyecto y cuenta de servicio, deberá utilizar la herramienta de línea de comandos
gcloud
, proporcionada por Google Cloud Platform. Aquí hay un ejemplo de cómo hacerlo:gcloud projects get-iam-policy <project_id>
y revisando la salida para su cuenta de usuario.Cree una nueva cuenta de servicio utilizando el comando
gcloud iam service-accounts create <service_account_name>
. Tome nota de la dirección de correo electrónico que se genera para la cuenta de servicio (estará en el formato<service_account_name>@<project_id>.iam.gserviceaccount.com
).Conceda acceso a la cuenta de servicio a los recursos apropiados utilizando roles de IAM. Por ejemplo, para otorgar acceso de lectura y escritura a un bucket de GCS en particular, puede ejecutar el comando
gsutil iam ch serviceAccount:<service_account_email>:objectAdmin gs://<bucket_name>
.Finalmente, configure su script de shell para utilizar la nueva cuenta de servicio agregando la bandera
--service-account
al comandogsutil
. Por ejemplo, su código revisado podría verse así:Reemplace
<path_to_key_file>
con la ruta al archivo JSON de clave que contiene las credenciales de la cuenta de servicio, y<service_account_email>
con la dirección de correo electrónico de la cuenta de servicio que creó.