Ce que vous devez savoir lors de l'invalidation de fichiers - Amazon CloudFront

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.

Ce que vous devez savoir lors de l'invalidation de fichiers

Lorsque vous spécifiez un fichier à invalider, reportez-vous aux informations suivantes :

Sensibilité à la casse

Les chemins d'invalidation distinguent les majuscules et minuscules. Par exemple, /images/image.jpg et /images/Image.jpg spécifiez deux fichiers différents.

Modification de l'URI à l'aide d'une fonction Lambda

Si votre CloudFront distribution déclenche une fonction Lambda lors d'événements de demande du lecteur, et si la fonction modifie l'URI du fichier demandé, nous vous recommandons d'invalider les deux URIs pour supprimer le fichier des CloudFront caches périphériques :

  • L’URI de la demande utilisateur

  • L’URI une fois que la fonction l’a modifié

Exemple exemple

Supposons que votre fonction Lambda modifie l'URI d'un fichier à partir de :

https://d111111abcdef8.cloudfront.net/index.html

Vers un URI qui inclut un répertoire de langues :

https://d111111abcdef8.cloudfront.net/en/index.html

Pour invalider le fichier, vous devez spécifier les chemins suivants :

  • /index.html

  • /en/index.html

Pour de plus amples informations, veuillez consulter Invalidation paths.

Objet racine par défaut

Pour invalider l’objet racine (fichier) par défaut, spécifiez le chemin tout comme le chemin pour tout autre fichier. Pour de plus amples informations, veuillez consulter Fonctionnement de l'objet racine par défaut.

Transmettre des cookies

Si vous avez configuré CloudFront pour transférer les cookies vers votre source, les caches CloudFront périphériques peuvent contenir plusieurs versions du fichier. Lorsque vous invalidez un fichier, toutes CloudFront les versions mises en cache du fichier sont invalidées, quels que soient les cookies associés. Vous ne pouvez pas invalider de façon sélective certaines versions et pas d’autres en fonction des cookies associés. Pour de plus amples informations, veuillez consulter Contenu du cache basé sur les cookies.

Transmettre des en-têtes

Si vous avez configuré CloudFront pour transférer une liste d'en-têtes vers votre origine et pour la mettre en cache en fonction des valeurs des en-têtes, les caches CloudFront périphériques peuvent contenir plusieurs versions du fichier. Lorsque vous invalidez un fichier, CloudFront invalide chaque version mise en cache du fichier, quelles que soient les valeurs des en-têtes. Vous ne pouvez pas invalider de façon sélective certaines versions et pas d’autres en fonction de valeurs d’en-têtes. (Si vous configurez CloudFront pour transférer tous les en-têtes vers votre origine, vos fichiers CloudFront ne sont pas mis en cache.) Pour de plus amples informations, veuillez consulter Contenu du cache basé sur les en-têtes des demandes.

Transmission de chaînes de requête

Si vous avez configuré CloudFront pour transférer les chaînes de requête vers votre origine, vous devez inclure les chaînes de requête lors de l'invalidation de fichiers, comme indiqué dans les exemples suivants :

  • /images/image.jpg?parameter1=a

  • /images/image.jpg?parameter1=b

Si les requêtes client incluent cinq chaînes de requête différentes pour le même fichier, vous pouvez soit invalider le fichier cinq fois (une fois par chaîne de requête), soit utiliser le caractère générique * dans le chemin d’invalidation, comme illustré dans l’exemple suivant :

/images/image.jpg*

Pour plus d’informations sur l’utilisation de caractères génériques dans le chemin d’invalidation, consultez Invalidation paths.

Pour plus d’informations sur les chaînes de requête, consultez Contenu du cache basé sur les paramètres de chaîne de requête.

Pour déterminer quelles chaînes de requête sont utilisées, vous pouvez activer la journalisation des accès CloudFront. Pour de plus amples informations, veuillez consulter Journalisation standard (journaux d'accès).

Maximum autorisé

Pour plus d'informations sur le nombre maximal d'invalidations autorisées, consultez. Nombre maximum de requêtes d’invalidation simultanées

Fichiers Microsoft Smooth Streaming

Vous ne pouvez pas invalider les fichiers multimédia au format Microsoft Smooth Streaming lorsque vous avez activé Smooth Streaming pour le comportement de cache correspondant.

Caractères autres qu’ASCII ou caractères non sûrs dans le chemin

Si le chemin inclut des caractères autres qu'ASCII ou non sûrs, tels que définis dans la RFC 1738, encodez ces caractères dans l'URL. N'encodez pas d'URL pour les autres caractères du chemin, car cela CloudFront n'invalidera pas l'ancienne version du fichier mis à jour.

Important

N'utilisez pas le ~ personnage sur votre chemin. CloudFront ne prend pas en charge ce caractère pour les invalidations, qu'il soit codé en URL ou non.

Chemins d’invalidation

Le chemin est relatif par rapport à la distribution. Par exemple, pour invalider le fichier àhttps://d111111abcdef8.cloudfront.net/images/image2.jpg, vous devez spécifier/images/image2.jpg.

Note

Dans la console CloudFront, vous pouvez omettre la barre oblique de début dans le chemin, comme ci-après : images/image2.jpg. Lorsque vous utilisez directement l' CloudFront API, les chemins d'invalidation doivent commencer par une barre oblique.

Vous pouvez également invalider simultanément plusieurs fichiers à l’aide du caractère générique *. Le caractère générique *, qui remplace 0 caractère ou plus, doit être le dernier caractère dans le chemin d’invalidation.

Important

Pour utiliser des caractères génériques (*) lors de l'invalidation, vous devez placer le caractère générique à la fin du chemin. Les astérisques (*) insérés ailleurs sont traités comme une correspondance de caractères littérale au lieu d'une invalidation par caractère générique.

Si vous utilisez le AWS Command Line Interface (AWS CLI) pour invalider des fichiers et que vous spécifiez un chemin qui inclut le * caractère générique, vous devez utiliser des guillemets (") autour du chemin, par exemple. "/*"

La longueur maximale d’un chemin est de 4 000 caractères.

Exemple : chemins d'invalidation
  • Pour invalider tous les fichiers d'un répertoire :

    /directory-path/*

  • Pour invalider un répertoire, tous ses sous-répertoires, ainsi que tous les fichiers qu'il contient :

    /directory-path*

  • Pour invalider tous les fichiers qui ont le même nom mais des extensions de nom de fichier différentes, comme logo.jpg, logo.png et logo.gif :

    /directory-path/file-name.*

  • Pour invalider tous les fichiers d’un répertoire dont le nom de fichier commence par les mêmes caractères (par exemple, tous les fichiers pour une vidéo au format HLS), quelle que soit l’extension du nom de fichier :

    /directory-path/initial-characters-in-file-name*

  • Lorsque vous configurez CloudFront le cache en fonction des paramètres de chaîne de requête et que vous souhaitez invalider toutes les versions d'un fichier :

    /directory-path/file-name.file-name-extension*

  • Pour invalider tous les fichiers d'une distribution, procédez comme suit :

    /*

Pour plus d’informations sur l’invalidation de fichiers si vous utilisez une fonction Lambda pour modifier l’URI, consultez Changing the URI Using a Lambda Function.

Si le chemin d’invalidation est un répertoire et que vous n’avez pas adopté une méthode standardisée pour spécifier les répertoires, avec ou sans barre oblique de fin (/), nous vous recommandons d’invalider le répertoire avec et sans barre oblique de fin, par exemple, /images et /images/.

Signé URLs

Si vous utilisez Signed URLs, invalidez un fichier en incluant uniquement la partie de l'URL située avant le point d'interrogation (?).