Si tu aplicación necesita leer y escribir archivos durante el tiempo de ejecución o servir archivos como películas, imágenes u otro contenido estático, te recomendamos que uses un segmento de Cloud Storage.
App Engine crea un segmento predeterminado cuando creas una aplicación. Este segmento ofrece los primeros 5 GB de almacenamiento de forma gratuita e incluye una cuota gratuita para las operaciones de E/S de Cloud Storage. Puedes crear otros segmentos de Cloud Storage, pero solo el segmento predeterminado incluye los primeros 5 GB de almacenamiento de forma gratuita.
Usar Cloud Storage con App Engine
Para usar un segmento de Cloud Storage desde una aplicación de App Engine, sigue estos pasos:
Consulta los nombres de los contenedores de tu proyecto de App Engine. Especificarás estos nombres cuando subas o descargues datos de Cloud Storage.
Te recomendamos que almacenes los nombres de tus segmentos de Cloud Storage en las variables de entorno de tu aplicación en lugar de codificarlos directamente en ella.
En tu aplicación, declara Cloud Storage como dependencia haciendo lo siguiente:
Go
Usa el comando
go get cloud.google.com/go/storage
. También puedes declarar dependencias en el archivogo.mod
de tu aplicación. Más información sobre cómo especificar dependenciasUsa la biblioteca de cliente de Google Cloud para subir o descargar datos de tus segmentos.
Para obtener información sobre cómo servir contenido estático, consulta Almacenar y servir archivos estáticos.
Java
Añade la biblioteca al archivo de dependencias de tu aplicación.
Usa la biblioteca de cliente de Google Cloud para subir o descargar datos de tus segmentos.
Para obtener información sobre cómo servir contenido estático, consulta Almacenar y servir archivos estáticos.
Node.js
En
app.yaml
, añade el ID de tu proyecto al valor del entornoGOOGLE_CLOUD_PROJECT
. A continuación, asigna al valor del entornoGCLOUD_STORAGE_BUCKET
el nombre del segmento de Cloud Storage que has creado anteriormente.Añade
@google-cloud/storage
al archivopackage.json
de tu aplicación. Más información sobre cómo especificar dependenciasUsa la biblioteca de cliente de Google Cloud para subir o descargar datos de tus segmentos.
Para obtener información sobre cómo servir contenido estático, consulta Almacenar y servir archivos estáticos.
Consulta el
README.md
archivo para obtener instrucciones sobre cómo ejecutar y probar el archivo de forma local.PHP
Añade
google/cloud-storage
al archivocomposer.json
de tu aplicación y ejecutacomposer install
desde el directorio de tu aplicación. Más información sobre cómo especificar dependenciasRegistra
Google\Cloud\Storage\StorageClient
como el envoltorio de flujo de tu aplicación. Después, usa el protocologs
para leer y escribir archivos.Consulta un ejemplo de registro y uso del envoltorio de flujo.
Como alternativa, puedes usar directamente la biblioteca de cliente de Google Cloud.
Python
Añade
google-cloud-storage
al archivorequirements.txt
de tu aplicación. Más información sobre cómo especificar dependenciasUsa la biblioteca de cliente de Google Cloud para subir o descargar datos de tus segmentos.
Para obtener información sobre cómo servir contenido estático, consulta Almacenar y servir archivos estáticos.
Ruby
Añade
google-cloud-storage
alGemfile
de tu aplicación. Más información sobre cómo especificar dependenciasUsa la biblioteca de cliente de Google Cloud para subir o descargar datos de tus segmentos.
Para obtener información sobre cómo servir contenido estático, consulta Almacenar y servir archivos estáticos.
Usar el segmento predeterminado
Cuando creas una aplicación, App Engine crea un segmento predeterminado que te ofrece los primeros 5 GB de almacenamiento de forma gratuita. El segmento predeterminado también incluye una cuota gratuita para las operaciones de E/S de Cloud Storage. Consulta la página Precios, cuotas y límites para obtener más información. Se te cobrará por el almacenamiento que supere el límite de 5 GB.
El nombre del segmento predeterminado tiene el siguiente formato:
project-id.appspot.com
App Engine también crea un segmento que usa para el almacenamiento temporal cuando despliega nuevas versiones de tu aplicación. Este segmento, llamado staging.project-id.appspot.com
, solo puede usarlo App Engine. Las aplicaciones no pueden interactuar con este contenedor.
Definir permisos de un segmento
La cuenta de servicio asociada a tu aplicación necesita permisos para leer y escribir en los segmentos de tu proyecto. Para saber qué permisos son necesarios, consulta Roles de gestión de identidades y accesos para Cloud Storage.
Normalmente, la cuenta de servicio asociada a tu aplicación es la cuenta de servicio predeterminada de App Engine.
En función de la configuración de la política de tu organización, es posible que se conceda automáticamente el rol Editor a la cuenta de servicio predeterminada de tu proyecto. Te recomendamos que inhabilites la asignación automática de roles
aplicando la restricción de la política de organización iam.automaticIamGrantsForDefaultServiceAccounts
. Si has creado tu organización después del 3 de mayo del 2024, esta restricción se aplica de forma predeterminada.
Si inhabilitas la concesión automática de roles, debes decidir qué roles quieres conceder a las cuentas de servicio predeterminadas y, a continuación, concederlos tú mismo.
Si la cuenta de servicio predeterminada ya tiene el rol Editor, te recomendamos que lo sustituyas por roles con menos permisos.Para modificar los roles de la cuenta de servicio de forma segura, usa Simulador de políticas para ver el impacto del cambio y, a continuación, asigna y revoca los roles adecuados.
Para obtener información sobre cómo permitir que otros usuarios, aplicaciones o proyectos accedan a un contenedor y a su contenido, consulta Definir permisos de contenedor.
Usar Cloud Storage con el servidor de desarrollo local
El servidor de desarrollo local de App Engine no emula Cloud Storage, por lo que todas las solicitudes de Cloud Storage deben enviarse a través de Internet a un segmento de Cloud Storage real.
Precios, cuotas y límites
No se aplican cargos por el ancho de banda asociado a las llamadas de la biblioteca de cliente de Cloud Storage a Cloud Storage. Sin embargo, hay cargos por operaciones. Además, las llamadas se contabilizan en tu cuota de obtención de URLs, ya que la biblioteca usa el servicio de obtención de URLs para interactuar con Cloud Storage.
Ten en cuenta que Cloud Storage es un servicio de pago por uso, por lo que se te cobrará según la hoja de precios de Cloud Storage.