2 votes

Fixer la TTL des fichiers CloudFront à 1 an

Je sais que nous pouvons définir l'en-tête expires pour Amazon S3, mais comment puis-je le définir pour un fichier cloudfront ? J'ai lu que l'on peut définir le TTL de 24 heures à 1 heure, mais je veux le définir pour 1 an.

5voto

Jakob Schmitt Points 21

Cette situation est gérée par les mécanismes habituels de contrôle du cache HTTP (cf. RFC 2616 ) comme documenté dans Expiration des objets Amazon CloudFront en particulier :

Par défaut, chaque objet expire automatiquement au bout de 24 heures. Pour spécifier un délai d'expiration différent, configurez votre origine de manière à ajouter une valeur pour la directive Cache-Control max-age ou le champ d'en-tête Expires à chaque objet :

  • El Cache-Control max-age vous permet de spécifier combien de temps (en secondes) vous souhaitez que l'objet reste dans le cache avant que CloudFront ne récupère l'objet depuis le serveur d'origine. Le délai d'expiration minimum pris en charge par CloudFront est de 0 seconde pour les distributions Web et de 3600 secondes pour les distributions RTMP. Le maximum est l'année 2038. Spécifiez la valeur dans le format suivant :

    Cache-Control: max-age=seconds

    Par exemple, la directive suivante indique à CloudFront de conserver l'objet associé dans le cache pendant 3600 secondes (une heure) :

    Cache-Control: max-age=3600

    Si vous souhaitez que les objets restent dans les caches de la périphérie de CloudFront pendant une durée différente de celle des caches du navigateur, vous pouvez utiliser l'option de recherche suivante Cache-Control max-age y Cache-Control s-maxage ensemble. Pour plus d'informations, voir Spécification de la durée minimale de mise en cache des objets par CloudFront pour les distributions Web .

  • El Expires vous permet de spécifier une date et une heure d'expiration dans le format spécifié dans le champ d'en-tête RFC 2616, Hypertext Transfer Protocol -- HTTP/1.1 Section 3.3.1, Date complète par exemple :

    Sat, 30 Jun 2012 23:59:59 GMT

    [...]

Nous vous recommandons d'utiliser la directive Cache-Control max-age plutôt que le champ d'en-tête Expires pour contrôler la mise en cache des objets. . Si vous spécifiez des valeurs à la fois pour Cache-Control max-age et pour Expires, CloudFront utilise uniquement la valeur de max-age. [souligné par moi]

Vous pouvez également jeter un coup d'œil au tableau suivant Spécification de la durée minimale de mise en cache des objets par CloudFront pour les distributions Web pour comprendre les particularités de la TTL minimum = 0 (par défaut) (voir ma réponse à À quoi sert un TTL 0 dans CloudFront ? pour une explication plus détaillée de cette fonctionnalité).

2voto

Chopper3 Points 99341

Pourquoi voulez-vous faire ça ? Pensez-vous qu'en faisant cela, vos dossiers seront maintenus au plus près du bord pendant une année entière sans qu'il y ait une seule traction d'origine ? Si c'est le cas, cela n'arrivera pas, désolé. 24 heures est un délai assez long pour un CDN. Si vous craignez que vos fichiers ne sortent de la périphérie, il suffit de distribuer quelques machines virtuelles dans le monde entier qui récupèrent périodiquement votre contenu (nous appelons cela "chatouiller"), ce qui permet de maintenir votre contenu à la périphérie.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X