2012-06-04 1 views
3

J'utilise cloud front comme CDN. Existe-t-il un moyen de forcer une mise à jour de contenu? J'ai un fichier sur mon serveur d'origine que j'ai mis à jour avec une nouvelle version (même nom, nouvelle date et heure). Mais quand je le vérifie dans cloudfront, c'est toujours l'ancien fichier.Forcer la mise à jour du contenu vers cloudfront, sans utiliser d'invalider

J'ai vu this thread qui suggère une façon d'invalider, mais je ne veux pas faire cela parce que c'est un surcoût je pense et il peut y avoir maximum 3 demandes d'invalidation en cours d'exécution à la fois. J'ai lu que cloudfront prend en charge dynamic content using query parameters, puis-je m'en servir d'une manière ou d'une autre pour forcer le cloud à tirer le contenu le plus récent du serveur de distribution.

Répondre

4

Le premier est comme vous l'avez mentionné pour appeler explicitement invalidate(). Ils ont une limite de 3 demandes d'invalidation, mais chaque requête peut contenir jusqu'à 1000 objets, ce qui est suffisant dans la plupart des cas. Cela prend habituellement 10 - 15 minutes selon le doc, mais mon expérience de cela est plutôt variable (peut prendre jusqu'à 30 minutes dans certains cas).

L'autre approche du paramètre dynamique est définitivement faisable et qui est un moyen préféré. Ce dont vous avez besoin est d'ajouter un paramètre timestamp à la fin de votre lien. Quelque chose comme:

http://www.example.com/img/logo.png?timestamp=123456789

Une fois que vous avez mis votre logo.png, modifiez l'horodatage à la nouvelle:

http://www.example.com/img/logo.png?timestamp=223456789

Et CloudFront sera en mesure de distinguer ces deux et choisir le bon un.

Alors oui, je crois que votre analyse est sur la bonne voie.

Questions connexes