¿Cómo configuro un bucket de Google Cloud?
Usa un proyecto de Google Cloud, un bucket privado y una cuenta de servicio dedicada a Transloadit. Necesitas permisos para crear el bucket, gestionar su acceso mediante IAM y crear una cuenta de servicio y su clave JSON. Se aplican cargos por el almacenamiento de Google Cloud y el procesamiento de Transloadit.
1. Crea un bucket privado
Sigue la guía de creación de buckets de Google. Usa el acceso uniforme a nivel de bucket para que IAM controle el acceso en lugar de las ACL de cada objeto. No concedas acceso público. Guarda el nombre del bucket y el ID del proyecto para los siguientes pasos.
2. Concede a una cuenta de servicio acceso a este bucket
Crea una cuenta de servicio dedicada y concédele el rol Storage Object Creator en este bucket, no en todo tu proyecto. Ese rol permite crear objetos, pero no leer, eliminar ni sobrescribir objetos existentes. El ejemplo siguiente usa las rutas de salida únicas predeterminadas del Robot. Si eliges rutas fijas o agregas Steps de importación, revisa los permisos necesarios para ese flujo de trabajo en lugar de conceder un acceso amplio de administrador.
Esta conexión de Transloadit usa el archivo de clave JSON de una cuenta de servicio. Sigue la guía de creación de claves de Google y descarga una clave JSON para la cuenta de servicio dedicada. Mantenla privada. Si tu organización prohíbe las claves de cuentas de servicio, consulta a tu administrador en lugar de eludir esa política. Un archivo de cliente OAuth o una clave de acceso HMAC no sustituye a esta clave JSON.
3. Guarda las credenciales de Template
Sigue Cómo crear credenciales de Template y selecciona Google Cloud Storage como servicio. Completa lo siguiente:
| Campo de la consola | Valor |
|---|---|
| ID del proyecto de Google | El ID de tu proyecto de Google Cloud. |
| Bucket de Google Cloud Storage | El nombre del bucket, sin el prefijo gs://. |
| Archivo de clave JSON de Google | El archivo de clave JSON de la cuenta de servicio que descargaste. |
Asigna a la credencial un nombre reconocible. Usa ese nombre en el Template siguiente, no el contenido del archivo JSON ni la dirección de email de la cuenta de servicio.
4. Prueba una exportación
Crea un Template con estas instrucciones y reemplaza
YOUR_GOOGLE_CLOUD_CREDENTIALS por el nombre de la credencial que guardaste:
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"exported": {
"robot": "/google/store",
"use": ":original",
"credentials": "YOUR_GOOGLE_CLOUD_CREDENTIALS",
"acl": null
}
}
}
Conserva "acl": null: esta opción omite la ACL del objeto y permite que la política
de IAM del bucket controle el acceso. Si omites acl, el Robot usa en su lugar
el valor predeterminado public-read, que es incompatible con el acceso uniforme a nivel de bucket.
Ejecuta el Template con una subida de prueba pequeña. Una vez que la Assembly se complete, inspecciona el resultado de la exportación y confirma que el objeto existe mediante tu propio acceso autenticado a Google Cloud Console. Una URL de resultado por sí sola no concede acceso anónimo a un objeto privado. No hagas público el bucket solo para probar esa URL.
Una Assembly puede fallar si un intento automático de subida crea el objeto pero se pierde la confirmación: un reintento automático no puede reemplazar ese objeto con el rol Storage Object Creator. Inspecciona el destino indicado y el error de la Assembly antes de cambiar los permisos. La mera existencia de un objeto no confirma que la exportación completa haya finalizado correctamente. Para reintentar manualmente, inicia una nueva Assembly con una nueva subida y las rutas de salida únicas predeterminadas del ejemplo en lugar de agregar permisos de sobrescritura o eliminación.
Más información
- Consulta la documentación de Templates para obtener información sobre la configuración y la seguridad de los Templates.
- Consulta la documentación de 🤖/google/store para obtener información sobre rutas, permisos y otras opciones de exportación.