2011-02-17 55 views
0

我有一個應用程序可以在Akamai上上傳圖片。有時候我們有必要上傳與之前相同名字的圖片。當我這樣做時,akamai不會根據時間戳刷新邊緣服務器上的映像。但是,如果我重命名圖像並上傳,我的更改將反映在所有邊緣服務器上。在Akamai邊緣服務器上刷新上傳的同名圖片

是否有任何ESI指令可用於確保圖像刷新。我知道這會超過使用CDN的目的,但我需要選定內容上的此功能。

任何幫助或方向將是偉大的。

回答

1

我相信akamai支持If-Modified-Since/ETAGs,它應該能夠滿足您的需求。簡要地看一下文檔,我發現了以下應該幫助你的項目符號。

//從Akamai的Documenation //

確保您的源服務器發送指示對象的版本,這樣,當這些對象過期邊緣服務器可以發送一個條件GET請求信息。

還要確保您的原始服務器正確響應這些條件請求,如果該文件自指定的時間以來沒有更改過,或者指定的ETag值仍然匹配,則304響應未修改。

Cache-Control和Expires標題指示瀏覽器是否以及多長時間緩存一個對象。但是,刷新過期對象時,瀏覽器必須具有指示可以在條件GET請求中發送給服務器的對象版本的信息。

通常可獲得的瀏覽器特定於版本的信息可以包括(除了別的以外):

上次修改:如果高速緩存時,它的瀏覽器接收與所述對象的Last-Modified頭,瀏覽器可以發送一個If-Modified-Since標頭刷新對象時,請求服務器發送該對象,如果該對象自指定日期以來已更改,或者如果未響應則返回304未修改響應。 例如,在HTTP響應中收到: Last-Modified:Fri,2009年2月6日00:08:43 GMT

ETag:ETag是一個唯一字符串,用於標識對象的特定版本。如果瀏覽器接收到帶有該對象的ETag頭部,則在刷新對象時可以發送If-None-Match頭部,請求服務器在其當前ETag與請求中的ETag不匹配時發送對象,或者用304如果沒有修改響應。 在HTTP響應中收到示例: ETag:「4514b5-4824-4743e60ff96c0」 確保您的站點發送的信息指示對象的版本,以便瀏覽器可以在服務器發送條件GET請求時那些對象到期。

1

如果Akamai EdgeSever在緩存中擁有該對象,它將爲該對象提供服務,而不用檢查源。當您更改文件名時,EdgeServer在緩存中沒有該對象,因爲它將其視爲新對象(EdgeServers具有緩存鍵的概念,該緩存鍵由文件名和其他內容組成。緩存鍵是EdgeServer如何在高速緩存中查找對象)。

如果您更改原點上的對象(例如更改文件的內容但不更改文件名),並且EdgeServer具有緩存中的對象,它將在不檢查原點的情況下提供對象。

如果您需要更改文件,可以通過Content Control Utility使用清除機制。登錄到Web控制面板,並有一個GUI界面來手動清除文件。或者你可以使用SOAP API。

如果您經常更改文件並且清除成爲問題,您應該查看更新您的配置。您可以爲您的內容設置較低的ttl(生存時間),或者您可以爲內容設置一個無存儲區,這將強制EdgeServer每次發送一條If-Modified-Since請求回到您的原始位置對象是請求。

+0

謝謝,etags幫助:) – Abhishek 2011-04-28 09:41:32