2011-02-17 4 views
0

J'ai une application qui télécharge des images sur Akamai. Parfois, il est nécessaire pour nous de télécharger l'image avec le même nom qu'avant. Lorsque je fais cela, Akamai n'actualise pas l'image sur les serveurs de bord en fonction de l'horodatage. Toutefois, si je renomme l'image et la télécharge, mes modifications sont répercutées sur tous les serveurs Edge.Actualiser une image téléchargée avec le même nom sur Akamai Edge Servers

Y a-t-il des directives ESI que je peux utiliser pour m'assurer que l'image est actualisée? Je sais que cela va battre le but de l'utilisation du CDN, mais j'ai besoin de cette fonctionnalité sur le contenu sélectionné.

Toute aide ou direction serait géniale.

Répondre

1

Je crois que Akamai prend en charge If-Modified-Since/ETAGs qui devrait vous obtenir ce que vous voulez. En regardant brièvement la documentation, j'ai trouvé les puces suivantes qui devraient vous aider.

// De Akamai Documenation //

Assurez-vous que votre serveur d'origine envoie des informations indiquant la version des objets afin que le serveur Edge peut envoyer une requête GET conditionnelle lorsque ces objets arrivent à expiration.

Assurez-vous également que votre serveur d'origine répond correctement à ces demandes conditionnelles, avec un message 304 non modifié, si le fichier n'a pas changé depuis l'heure spécifiée ou si la valeur ETag spécifiée correspond toujours.

Les en-têtes Cache-Control et Expires indiquent au navigateur si et combien de temps mettre en cache un objet. Mais lors de l'actualisation d'un objet expiré, le navigateur doit disposer d'informations indiquant la version de l'objet qu'il peut envoyer au serveur dans une requête GET conditionnelle.

informations spécifiques à la version couramment disponibles dans le navigateur peut inclure (entre autres):

Last-Modified: Si le navigateur reçoit un en-tête Last-Modified avec l'objet lors de la mise en cache il, le navigateur peut alors envoyer un If-Modified-Since En-tête lors de l'actualisation de l'objet, demande au serveur d'envoyer l'objet s'il a changé depuis la date spécifiée ou répond avec une réponse 304 Not Modified si ce n'est pas le cas. exemple, reçu dans la réponse HTTP: dernière modification: Ven 6 février 2009 00:08:43 GMT

ETag: Un ETag est une chaîne unique qui identifie une version spécifique de l'objet. Si le navigateur reçoit un en-tête ETag avec l'objet, il peut envoyer un en-tête If-None-Match lors de l'actualisation de l'objet, demandant au serveur d'envoyer l'objet si son ETag actuel ne correspond pas à ETag dans la requête ou Réponse non modifiée si c'est le cas. Exemple, tel que reçu dans la réponse HTTP: ETag: "4514b5-4824-4743e60ff96c0" Assurez-vous que votre site envoie des informations indiquant la version des objets afin que le navigateur puisse envoyer une requête GET conditionnelle au serveur lorsque ces objets expirent.

1

Si un objet Akamai EdgeSever a l'objet en cache, il servira l'objet sans jamais vérifier l'origine. Lorsque vous modifiez le nom de fichier, EdgeServer n'a pas l'objet dans le cache, car il considère cela comme un nouvel objet (les serveurs EdgeServers ont un concept de clé de cache, qui est composé du nom de fichier et d'autres choses. comment EdgeServer localise l'objet dans le cache).

Si vous modifiez l'objet en place sur votre origine (par exemple, vous modifiez le contenu du fichier, mais ne changez pas le nom de fichier) et qu'un serveur Edge a l'objet en cache, il le servira sans vérifier l'origine.

Si vous devez modifier des fichiers, vous pouvez utiliser le mécanisme de purge via l'utilitaire de contrôle du contenu. Connectez-vous au panneau de configuration Web et une interface graphique permet de purger les fichiers manuellement. Ou vous pouvez utiliser l'API SOAP.

Si vous changez constamment de fichiers et que la purge devient un problème, vous devriez essayer de mettre à jour votre configuration. Vous pouvez définir une durée de vie (ttl) faible pour votre contenu, ou vous pouvez configurer un non-stockage pour le contenu, ce qui obligera le serveur EdgeServer à envoyer une demande If-Modified-Since à chaque origine l'objet est la requête.

+0

Merci, que etags a aidé :) – Abhishek

Questions connexes