Use Cloud Storage

Si tu app de Go 1.11 necesita leer y escribir archivos en el tiempo de ejecución, o entregar archivos, como películas, imágenes o contenido estático, te recomendamos usar un bucket de Cloud Storage.

Cuando creas una aplicación, App Engine crea un bucket predeterminado. Este bucket proporciona los primeros 5 GB de forma gratuita, y también incluye una cuota gratis para las operaciones de E/S. Puedes crear otros depósitos de Cloud Storage, pero solo el predeterminado incluye de forma gratuita los primeros 5 GB de almacenamiento.

Cómo usar Cloud Storage con App Engine

Para usar un bucket de Cloud Storage desde una app de App Engine, sigue estos pasos:

  1. Visualiza los nombres de los depósitos existentes en tu proyecto de App Engine. Deberás especificar estos nombres cuando subas o descargues datos de Cloud Storage.

    Te recomendamos guardar los nombres de tus depósitos de Cloud Storage en las variables de entorno de tu app, en lugar de codificarlos (hard-coding) en ella.

  2. En tu app, declara que Cloud Storage es una dependencia mediante el comando go get cloud.google.com/go/storage. De manera alternativa, puedes declarar dependencias en el archivo go.mod de tu app. Obtén más información sobre cómo especificar dependencias.

  3. Usa la biblioteca cliente de Google Cloud para subir o descargar datos de tus depósitos.

    Para obtener información sobre cómo entregar contenido estático, consulta la sección sobre almacenamiento y entrega de archivos estáticos.

Usa el bucket predeterminado

Cuando creas una aplicación, App Engine crea un bucket predeterminado que te ofrece los primeros 5 GB de almacenamiento sin costo. El bucket predeterminado también incluye una cuota gratuita para operaciones de E/S de Cloud Storage. Consulta Precios, cuotas y límites para obtener más detalles. Se te cobrará por el almacenamiento que supere los 5 GB.

El nombre del bucket predeterminado tendrá el siguiente formato:

project-id.appspot.com

Además, App Engine crea un bucket que usa para almacenamiento temporal cuando implementa versiones nuevas de tu aplicación. Este bucket, llamado staging.project-id.appspot.com, es para uso único de App Engine. Las aplicaciones no pueden interactuar con este bucket.

Configura permisos de depósitos y objetos

La cuenta de servicio asociada con tu app necesita permisos para leer y escribir en los buckets de tu proyecto. A fin de saber qué permisos son necesarios, consulta Roles de IAM para Cloud Storage.

Por lo general, la cuenta de servicio asociada con tu app es la cuenta de servicio predeterminada de App Engine.

Según la configuración de la política de la organización, es posible que a la cuenta de servicio predeterminada se le otorgue automáticamente el rol de editor en tu proyecto. Te recomendamos inhabilitar la concesión automática de roles; para ello, aplica la restricción de la política de la organización iam.automaticIamGrantsForDefaultServiceAccounts. Si creaste tu organización después del 3 de mayo de 2024, esta restricción se aplica de forma predeterminada.

Si inhabilitas la concesión automática de roles, debes decidir qué roles se deben otorgar a las cuentas de servicio predeterminadas y, luego, otorgar estos roles a ti mismo.

Si la cuenta de servicio predeterminada ya tiene el rol de editor, te recomendamos que reemplaces el rol de editor por roles menos permisivos. Para modificar de forma segura los roles de la cuenta de servicio, usa Policy Simulator para ver el impacto del cambio y, luego, otorga y revoca los roles adecuados.

Para obtener más información sobre cómo darles acceso a otros usuarios, aplicaciones o proyectos a un bucket y sus contenidos, consulta las páginas Configura los permisos del bucket y Configura los permisos de objetos.

Usa Cloud Storage con el servidor de desarrollo local

El servidor de desarrollo local de App Engine no emula a Cloud Storage, por lo que todas las solicitudes de Cloud Storage deben enviarse por Internet a un bucket de Cloud Storage real.

Precios, cuotas y límites

No existen cargos de ancho de banda asociados con las llamadas de la biblioteca cliente de Cloud Storage a Cloud Storage. Sin embargo, sí se aplican cargos por operaciones. Además, las llamadas se imputarán a la cuota de recuperación de URL, ya que la biblioteca usa el servicio de recuperación de URL para interactuar con Cloud Storage.

Ten en cuenta que Cloud Storage es un servicio de pago por uso. Se te cobrará de acuerdo con la hoja de precios de Cloud Storage.