Almacenamiento en caché

En esta página, se analiza la caché integrada de Cloud Storage. Cloud Storage también es compatible con CDN de terceros.

Descripción general

Cuando un objeto de Cloud Storage se almacena en caché, las copias del objeto se almacenan en una caché de Google o de Internet para que tu objeto se pueda entregar más rápido en solicitudes futuras. Aunque el almacenamiento en caché puede mejorar el rendimiento, también corres el riesgo de entregar contenido inactivo si realizas actualizaciones en tu objeto, pero la caché continúa entregando la versión anterior de este.

Almacenamiento en caché integrado para Cloud Storage

Cloud Storage puede comportarse como una red de distribución de contenido (CDN) sin que debas realizar ninguna acción, ya que los datos de un objeto se almacenan en caché en la red de Cloud Storage si sus metadatos Cache-Control están configurados para permitir el almacenamiento en caché y se cumplen los siguientes criterios:

Cloud Storage respeta los valores estándar para Cache-Control, como los siguientes:

  • public: El objeto se puede almacenar en caché.

  • private: Cloud Storage no almacenará en caché el objeto, pero se puede almacenar en caché en la caché local del solicitante.

  • no-cache: El objeto se puede almacenar en caché, pero no se puede usar para satisfacer solicitudes futuras, a menos que primero se valide mediante Cloud Storage.

  • no-store: El objeto no se puede almacenar en caché.

  • max-age=TIME_IN_SECONDS: La cantidad de tiempo que un objeto puede almacenarse en caché antes de que se considere inactivo. Puedes configurar max-age en cualquier período. Los objetos inactivos no se entregan desde memorias caché, excepto en circunstancias especiales.

Para configurar los metadatos Cache-Control de un objeto, consulta Edita los metadatos de objetos.

Comportamiento de almacenamiento en caché integrado con políticas de denegación de IAM

Cuando hay una política de denegación de IAM a nivel de la organización con la que se restringe el acceso de lectura de un objeto del identificador principal allUsers, el almacenamiento en caché integrado está inhabilitado para el objeto, incluso si hay una política de IAM a nivel de bucket con la que se otorga acceso de lectura al objeto a allUsers. Sin embargo, si la política de denegación de IAM solo restringe a los usuarios individuales, el almacenamiento en caché integrado permanece habilitado para el objeto.

Consideraciones de rendimiento

El rendimiento puede ser mucho mejor en el caso de los objetos que pueden almacenarse en caché de forma pública. Si tienes un objeto que se usa para controlar muchos clientes y quieres inhabilitar el almacenamiento en caché a fin de que siempre se recuperen los datos más actualizados, sigue estas recomendaciones:

  • Tal vez sea mejor que configures los metadatos Cache-Control del objeto como public, con un valor de max-age de 15 a 60 segundos. La mayoría de las aplicaciones tolera que el objeto esté desactualizado por unos segundos a cambio de las mejoras de rendimiento.

  • Usa Cache-Control: no-store a fin de indicar que el objeto no debe almacenarse en caché para solicitudes posteriores en ninguna caché.

¿Qué sigue?