Interaction d'AWS Elemental MediaStore avec les caches HTTP - AWSÉlémentaire MediaStore

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Interaction d'AWS Elemental MediaStore avec les caches HTTP

AWS Elemental MediaStore stocke les objets afin qu'ils puissent être mis en cache correctement et efficacement par des réseaux de diffusion de contenu (CDN) tels qu'Amazon CloudFront. Lorsqu'un utilisateur final ou un CDN extrait un objet MediaStore, le service renvoie des en-têtes HTTP qui affectent le comportement de mise en cache de l'objet. (Les normes pour le comportement de mise en cache HTTP 1.1 se trouvent dans la section 13 du RFC2616.) Ces en-têtes sont :

  • ETag (non personnalisable) : l'en-tête de balise d'entité est un identificateur unique pour la réponse envoyée par MediaStore . Les CDN et les navigateurs Web conformes aux normes utilisent cette balise comme clé pour mettre en cache l'objet. MediaStore génère automatiquement unETag pour chaque objet lors de son téléchargement. Vous pouvez afficher les détails d'un objet pour déterminer sa valeur ETag.

  • Last-Modified(non personnalisable) — La valeur de cet en-tête indique la date et l'heure de modification de l'objet. MediaStore génère automatiquement cette valeur lorsque l'objet est chargé.

  • Cache-Control (personnalisable) – La valeur de cet en-tête contrôle la durée pendant laquelle un objet doit être mis en cache avant que le CDN vérifie s'il a été modifié. Vous pouvez définir n'importe quelle valeur pour cet en-tête lorsque vous chargez un objet dans un MediaStore conteneur à l'aide de l'interface de ligne de commande ou de l'API. L'ensemble complet de valeurs valides est décrit dans la documentation HTTP/1.1. Si vous ne définissez pas cette valeur lorsque vous chargez un objet, cet en-tête MediaStore ne sera pas renvoyé lors de la récupération de l'objet.

    L'en-tête Cache-Control est souvent utilisé pour spécifier une durée de mise en cache de l'objet. Par exemple, supposons que vous ayez un fichier manifeste vidéo qui est fréquemment écrasé par un encodeur. Vous pouvez définir max-age sur 10 pour indiquer que l'objet doit être mis en cache pendant seulement 10 secondes. Ou supposons que vous ayez un segment vidéo stocké qui ne sera jamais remplacé. Vous pouvez définir le max-age pour cet objet sur 31536000 à mettre en cache pendant environ 1 an.

Demandes conditionnelles

Demandes conditionnelles adressées à MediaStore

MediaStore répond de manière identique aux demandes conditionnelles (en utilisant des en-têtes de requête tels queIf-Modified-Since etIf-None-Match, comme décrit dans la RFC7232) et aux demandes inconditionnelles. Cela signifie que lorsqu'il MediaStore reçoit uneGetObject demande valide, le service renvoie toujours l'objet même si le client le possède déjà.

Demandes conditionnelles aux CDN

Les CDN qui diffusent du contenu pour le compte de MediaStore peuvent traiter les demandes conditionnelles en les renvoyant304 Not Modified, comme décrit dans la section 4.1 de la RFC7232. Cela indique qu'il n'est pas nécessaire de transférer le contenu complet de l'objet, car le demandeur possède déjà un objet qui correspond à la demande conditionnelle.

Les CDN (et les autres caches conformes à HTTP/1.1) basent ces décisions sur les en-têtes ETag et Cache-Control qui sont transférés par les serveurs d'origine. Pour contrôler la fréquence à laquelle les CDN interrogent les serveurs MediaStore d'origine pour obtenir des mises à jour concernant des objets récupérés à plusieurs reprises, définissezCache-Control les en-têtes de ces objets lorsque vous les importez MediaStore.