2012-09-21 23 views
7

में फ़ाइल अपडेट करें मेरे पास ब्लॉब स्टोरेज और सीडीएन एंडपॉइंट है, जो मेरी स्थिर सामग्री को स्टोर करता है। अब मैं app.js फ़ाइल को अपडेट करना चाहता हूं, क्योंकि इसे संशोधित किया गया था, लेकिन जब मैं इस फ़ाइल को ब्लॉब करने के लिए लिखता हूं, तो सीडीएन अभी भी मुझे पुरानी app.js फ़ाइल देता है। मैं अपनी app.js फ़ाइल को कैसे अपडेट कर सकता हूं? या मुझे तब तक इंतजार करना पड़ेगा जब तक मेरा कैश खत्म नहीं हो रहा है?विंडोज़ एज़ूर सीडीएन

+0

मुझे वास्तव में इस प्रश्न का उत्तर भी चाहिए। मैंने कैश-कंट्रोल हेडर के साथ गड़बड़ करने की कोशिश की है, लेकिन यह सुनिश्चित नहीं है कि उनके साथ क्या किया जाए। मैं एक नए नाम के साथ एक फाइल अपलोड कर सकता हूं, और यह तुरंत दिखाता है, लेकिन मौजूदा फाइल में संशोधन अभी भी 72 घंटों के बाद दिखाई नहीं दे रहा है। – Erick

उत्तर

1

सीडीएन सरल है। जब कोई अनुरोध आता है, तो यह मूल से सामग्री (इस मामले में, ब्लॉब स्टोरेज) प्राप्त करता है, और उसके बाद Cache-Control शीर्षलेख के आधार पर इसे कुछ समय तक कैश करता है। कैश की समयसीमा समाप्त होने तक यह वही सामग्री वितरित करेगा।

सीडीएन को कुछ जल्दी समाप्त करने के लिए कहने का कोई तरीका नहीं है।

अन्य इस से निपटने के तरीके के बारे में अधिक सहायक सलाह के साथ कूद सकते हैं (क्वेरी स्ट्रिंग पैरामीटर की तरह), लेकिन मैं सिर्फ सीडीएन के कैशिंग के कामों के बारे में सीधा स्पष्टीकरण देना चाहता था।

+0

जानकारी के लिए धन्यवाद। क्या आपको पता है कि कैश-कंट्रोल हेडर उस विशेष ब्लॉब पर खाली है या नहीं? – Erick

+0

यह जानकारी पुरानी हो सकती है, लेकिन एक बिंदु पर हेरिस्टिक यह था कि सीडीएन अधिकतम (अधिकतम - संशोधित) की अवधि के लिए सामग्री को कैश करेगा, अगर मुझे सही तरीके से याद किया जाता है, तो 72 घंटे। इसलिए यदि अंतिम संशोधित हेडर इंगित करता है कि सामग्री तीन घंटे पुरानी है, तो सीडीएन फिर से जांचने से पहले अगले तीन घंटों तक इसे कैश करेगा। लेकिन ध्यान दें कि यह निश्चित रूप से बदल सकता है, और डिफ़ॉल्ट व्यवहार पर भरोसा करना बहुत अच्छा विचार नहीं है। – smarx

-1

ऐसा लगता है कि डिफ़ॉल्ट समाप्ति समय 7 दिन है।

से: http://msdn.microsoft.com/en-us/library/azure/gg680306.aspx

Blobs कि Azure CDN कैशिंग से सबसे अधिक लाभ उन है कि अपने टाइम-टू-लिव (TTL) की अवधि के दौरान बार-बार पहुँचा रहे हैं। एक ब्लॉब टीटीएल अवधि के लिए कैश में रहता है और फिर उस समय समाप्त होने के बाद ब्लॉब सेवा द्वारा रीफ्रेश किया जाता है। फिर प्रक्रिया दोहराती है।

  1. नहीं सेट कैश मूल्यों इस प्रकार 7 दिन के डिफ़ॉल्ट टीटीएल का उपयोग कर कार्य करें:

    आप टीटीएल नियंत्रित करने के लिए दो विकल्प हैं।

  2. स्पष्ट रूप से या एक निराली ब्लॉब पर एक्स-एमएस-ब्लॉब-संचय-नियंत्रण गुण सेट ब्लॉक सूची रखो, सेट ब्लॉब गुण अनुरोध, या का उपयोग Azure लाइब्रेरी प्रबंधित BlobProperties.CacheControl गुण सेट करने के लिए। यह प्रॉपर्टी सेट करना ब्लॉब के लिए कैश-कंट्रोल हेडर का मान सेट करता है। शीर्षलेख या संपत्ति के मान को सेकंड में उपयुक्त मान निर्दिष्ट करना चाहिए। उदाहरण के लिए, अधिकतम कैशिंग अवधि को वर्ष पर सेट करने के लिए, आप अनुरोध हेडर को x-ms-blob-cache-control के रूप में निर्दिष्ट कर सकते हैं: सार्वजनिक, अधिकतम आयु = 31556926। कैशिंग हेडर सेट करने के विवरण के लिए, HTTP/1.1 विनिर्देश देखें।

1

सीधे शब्दों में आप इसकी समाप्ति से पहले कैश वस्तु अद्यतन नहीं कर सकते।

https://msdn.microsoft.com/en-us/library/azure/gg680303.aspx से

:

  • एक के लिए:

    तुम अब Azure सामग्री वितरण नेटवर्क (CDN), तो आप निम्न चरणों में से एक ले जा सकते हैं में एक वस्तु कैश करने के लिए चाहते हैं Azure Blob, आप सार्वजनिक कंटेनर से ब्लॉब को हटा सकते हैं।

  • आप कंटेनर को सार्वजनिक के बजाय निजी बना सकते हैं। अधिक जानकारी के लिए कंटेनर और ब्लॉब्स तक पहुंच प्रतिबंधित करें देखें।

  • आप Azure प्रबंधन पोर्टल का उपयोग कर सीडीएन एंडपॉइंट को अक्षम या हटा सकते हैं।

  • आप ऑब्जेक्ट के अनुरोधों का जवाब देने के लिए अपनी होस्ट की गई सेवा को संशोधित कर सकते हैं।

ऑब्जेक्ट की समय-समय पर लाइव अवधि तक सीडीएन में पहले से कैश किए गए ऑब्जेक्ट को कैश किया जाएगा। जब समय-प्रति-अवधि की अवधि समाप्त हो जाती है, तो सीडीएन यह देखने के लिए जांच करेगा कि क्या सीडीएन एंडपॉइंट अभी भी वैध है और ऑब्जेक्ट अभी भी अनामिक रूप से सुलभ है। यदि यह नहीं है, तो ऑब्जेक्ट अब कैश नहीं किया जाएगा।

एज़ूर सीडीएन के लिए वर्तमान में कोई स्पष्ट "शुद्ध" उपकरण उपलब्ध नहीं है।


अन्य समाधान है, या तो नकली क्वेरी स्ट्रिंग या नई फ़ाइल नाम का उपयोग यदि संभव हो तो शामिल हैं। यहाँ देखें: https://stackoverflow.com/a/8773202/908336

0

केवल यह अधिकार अब बारी में Verizon EdgeCast साथ एक समर्थन टिकट खोलने CDN से फ़ाइल को हटाने के लिए होगा Azure समर्थन और वे संपर्क करने के लिए है करने के लिए जिस तरह से और यह उस बिंदु पर अद्यतन करेगा। इस पूरी प्रक्रिया में बुनियादी Azure समर्थन योजना पर लगभग 8 घंटे लगते हैं। यह एक अच्छा समाधान नहीं है और मुझे उम्मीद है कि वे इसे अपडेट करेंगे जहां हम प्रोग्रामेटिक रूप से सीडीएन से कुछ शुद्ध कर सकते हैं। यह एक मूलभूत विशेषता की तरह लगता है जिसमें उनकी कमी है। आपकी सबसे अच्छी शर्त मुझे लगता है कि अभी क्वेरीस्ट्रिंग स्थिति सक्षम करना है और फिर जब आप अपडेट करते हैं तो क्वेरीस्ट्रिंग को अपडेट करें। हम जेएस फाइलों के लिए ऐसा करते हैं जैसे /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 के रूप में, कोई शुद्ध कार्य उपलब्ध नहीं है। यह सुविधा विकास में है। सबसे अच्छा ताजगी नियंत्रण इस दस्तावेज़ में वर्णित अच्छे कैश समाप्ति शीर्षलेख और एमएसडीएन पर विंडोज़ एज़ूर सीडीएन दस्तावेज सेट करना है।

2

प्रश्न बहुत पहले पूछा गया था। मैं बस उस विधि पर अपडेट करना चाहता था जो मेरे लिए उपयोगी साबित हुआ। माइक्रोसॉफ्ट द्वारा इसकी सिफारिश की। अनिवार्य रूप से आपको अपने ब्लॉब स्टोरेज में कैश-कंट्रोल हेडर सेट अप करने की आवश्यकता है। आप "सार्वजनिक, अधिकतम आयु = 3600" मान के साथ कैश नियंत्रण शीर्षलेख सेट कर सकते हैं। यह आपकी फ़ाइल को लगभग 1 घंटे तक कैश करेगा।

https://azure.microsoft.com/en-us/documentation/articles/cdn-manage-expiration-of-blob-content/

0

आप Azure नए प्रबंधन पोर्टल से सामग्री सफाई कर सकते हैं।

संबंधित मुद्दे