我有blob存儲和CDN端點,用於存儲我的靜態內容。 現在我想更新app.js文件,因爲它已被修改,但是當我將此文件寫入Blob時,CDN仍然給我舊的app.js文件。我怎樣才能更新我的app.js文件?或者我必須等到我的緩存不會結束?Windows Azure中的更新文件CDN
回答
CDN很簡單。當請求進入時,它會從源(本例中是BLOB存儲)中獲取內容,然後基於Cache-Control
標頭將其緩存一段時間。它將繼續提供相同的內容,直到緩存過期。
沒有辦法告訴CDN儘早過期。
其他人可能會提供更多關於如何處理此問題的有用建議(如查詢字符串參數),但我只是想直接解釋CDN的緩存如何工作。
它似乎默認的過期時間是7天。
來源:http://msdn.microsoft.com/en-us/library/azure/gg680306.aspx
斑點是受益於Azure的CDN緩存的大多是那些 在他們的時間生存(TTL)期間頻繁訪問。 Blob 在TTL期間保留在高速緩存中,然後在該時間過後由 Blob服務刷新。然後重複該過程。
你必須控制TTL兩種選擇:
不要因此利用7天的缺省TTL不設置緩存值。
精確設置X-MS-BLOB緩存控性能上的認沽斑點,把 阻止列表,或設置一滴性能的要求,或使用Azure的管理 庫設置BlobProperties.CacheControl屬性。設置此 屬性可設置blob的Cache-Control標頭的值。標頭或屬性的 值應以秒爲單位指定適當的值 。例如,要將最大緩存週期設置爲一年 ,可以將請求標頭指定爲x-ms-blob-cache-control: public,max-age = 31556926。有關設置緩存頭的詳細信息,請參閱HTTP/1.1規範 。
只要你不能更新其到期前的緩存對象。
從https://msdn.microsoft.com/en-us/library/azure/gg680303.aspx:
如果您不再希望在Azure的內容分發網絡(CDN),你可以採取以下步驟之一緩存的對象:
對於Azure blob,您可以從公共容器中刪除blob。
您可以使容器變爲私人而不是公開的。有關更多信息,請參閱限制對容器和Blob的訪問。
您可以使用Azure管理門戶來禁用或刪除CDN端點。
您可以修改託管服務以不再響應對該對象的請求。
緩存在CDN中的對象將保持緩存狀態,直到該對象的生存時間到期。當生存時間到期時,CDN將檢查CDN端點是否仍然有效,並且該對象仍可匿名訪問。如果不是,則該對象將不再被緩存。
Azure CDN目前沒有明確的「清除」工具可用。
其他解決方法包括使用僞造或者查詢字符串或新的文件名,如果可能的話。請看這裏:https://stackoverflow.com/a/8773202/908336
現在唯一的方法就是聯繫Azure支持,他們將反過來打開Verizon EdgeCast的支持通知單,將文件從CDN中刪除,並在此時更新。整個過程大約需要8小時才能完成基本的Azure支持計劃。這不是一個好的解決方案,我真的希望他們更新到我們可以從CDN中以編程方式清除某些內容的位置。這似乎是他們缺乏的基本功能。我認爲現在最好的辦法是啓用查詢字符串狀態,然後在更新時更新查詢字符串。我們爲js文件執行此操作,如/js/custommix.js?version=1。然後,當我們需要更新這些配置時,我們會從我們的配置中追加一個新版本。
http://azure.microsoft.com/en-us/blog/best-practices-for-the-windows-azure-content-delivery-network/
我怎樣才能清除或在Windows Azure CDN內容無效?
從1.4開始,沒有清除功能可用。此功能正在開發中。最好的新鮮度控制是按照本文檔和MSDN上的Windows Azure CDN文檔所述設置良好的緩存過期頭。
很久以前問過問題了。我只想更新對我有用的方法。它由微軟推薦。本質上,您需要在Blob存儲中設置緩存控制標題。您可以設置值爲「public,max-age = 3600」的緩存控制標題。這會將您的文件緩存約1小時。
https://azure.microsoft.com/en-us/documentation/articles/cdn-manage-expiration-of-blob-content/
可以清除從Azure的新管理門戶網站的內容。
- 1. 如何在Windows Azure中創建CDN
- 2. Windows Azure - 作爲網站的CDN?
- 3. 更新MathJax CDN
- 4. 帶有新管理門戶的Windows Azure CDN
- 5. Azure CDN標準Akamai配置文件
- 6. Azure CDN未傳遞Gzip文件
- 7. 將音頻文件上傳到Azure CDN
- 8. Azure網站的Azure CDN
- 9. Windows azure CDN blob交易賬單
- 10. 更新JavaScript庫到Windows Azure
- 11. 建立Azure的CDN
- 12. Azure CDN WebApp 404
- 13. Azure CDN網站
- 14. Windows Azure發佈配置文件不更新數據庫
- 15. Windows Azure-更新和添加資源文件
- 16. 是否可以使用Azure文件存儲創建Azure CDN?
- 17. Azure CDN每Blob SAS
- 18. 如何更新亞馬遜CDN(CloudFront)上的文件?
- 19. 如何使用Windows Azure SDK 2.0插入/更新到Azure表中
- 20. windows azure中的配置文件位置
- 21. 訪問Windows Azure中的文件系統
- 22. 未能在Azure CDN中包含js文件,來源爲WordPress
- 23. 使用Azure CDN的Imageresizer
- 24. 與cdn的Azure web角色
- 25. Azure Data Lake Store - 文件權限更新
- 26. 無法更新託管服務Windows Azure
- 27. Azure VM Windows Server 2012更新錯誤800F0922
- 28. Windows Azure緩存cshtml文件?
- 29. Windows Azure:爲新手開發者啓動azure的更好方式
- 30. 在新的azure存儲帳戶中使用CDN
我真的也需要這個問題的答案。我試着搞亂緩存控制標題,但不知道如何處理它們。我可以上傳帶有新名稱的文件,並立即顯示,但對現有文件的修改在72小時後仍未顯示。 – Erick