2012-04-19 7 views
6

की एक ताज़ा मजबूर नहीं करता मैं जे एस और सीएसएस फ़ाइलें अमेज़न CloudFront के माध्यम से प्रस्तुत किया जा रहा है। अब तक मैं अपने सर्वर का उपयोग वार्निश चला रहा था, और जब मैंने किसी जेएस या सीएसएस फ़ाइल को अपडेट किया था या मुझे उस नए संस्करण का उपयोग करने के लिए करना था, तो उस फ़ाइल के अनुरोध पर यूआरएल परम पर काउंटर बढ़ाने के लिए।एक URL पैरामीटर (? P = 234) अमेज़न CloudFront पर एक फ़ाइल को जोड़ना फ़ाइल

तो फ़ाइल के यूआरएल को शामिल किया जाएगा .../file.css? R = 1 से .../file.css? R = 2 और वार्निश एक नई फाइल के रूप में सोचेंगे, अनुरोध इसे और कैश करें और उस बिंदु से कैश से इसकी सेवा करें।

CloudFront मैं इसे उस तरह काम नहीं करता साकार कर रहा हूँ के साथ

, यह अभी भी पुराने कैश्ड फ़ाइल में कार्य करता है (और मैं HTTP प्रतिक्रिया पर हो रही "CloudFront से हिट" रखने के लिए)।

किसी भी विचार करता है, तो मैं इसके लिए CloudFront के व्यवहार को बदल सकते हैं?

और कुछ मैं ऐसा कर सकते हैं फ़ाइल हर मैं फ़ाइल को अपडेट का नाम बदलने वास्तव में मतलब यह नहीं है? मैं क्लाउडफ़्रंट के एपीआई के माध्यम से कैश अमान्यताओं का भी उपयोग नहीं करना चाहता हूं। मुझे लगता है कि मैं यहां जो करने की कोशिश कर रहा हूं उसके लिए बहुत अधिक काम है, और प्रति माह सीमित (मुफ्त) अनुरोधों की एक सीमित राशि है जो मैं कर सकता हूं।

+0

कैश व्यवहार सेटिंग्स में "क्वेरी स्ट्रिंग फ़ॉरवर्डिंग और कैशिंग" का उपयोग करें। मूल्य को "सभी को अग्रेषित करें, सभी के लिए कैश" सेट करें यदि आप चाहते हैं कि प्रत्येक बार क्लाउडफ़्रंट एक नई फ़ाइल के लिए स्रोत पूछने के लिए स्रोत पूछें, या "व्हाइटवर्ड पर आधारित सभी कैश करें" यदि आप केवल क्लाउडफ़्रंट प्राप्त करना चाहते हैं प्रश्न पैराम के श्वेतसूची के आधार पर नया संस्करण। –

उत्तर

3

ऐसा लगता है कि आप लगभग एक महीने के शुरुआती दिनों में थे ... 2012 के मध्य मई में, अमेज़ॅन ने घोषणा की कि आप अपने क्लाउड फ्रंट कैश में ऑब्जेक्ट्स की पहचान करने के लिए क्वेरी स्ट्रिंग का उपयोग शुरू कर सकते हैं।

यहाँ अपने ब्लॉग पर घोषणा के लिए एक लिंक है: http://aws.typepad.com/aws/2012/05/amazon-cloudfront-support-for-dynamic-content.html

दुर्भाग्य से, मैं अपने त्वरित Googling के किसी भी लिंक का वर्णन करता है तुम ऐसा कैसे वास्तव में क्या कर सकते हैं नहीं दिख रहा है, लेकिन मुझे यकीन है कि यह उनके दस्तावेज में दबा हुआ है, कर रहा हूँ या कहीं कहीं नियंत्रण कक्ष।

आशा यह आप सही दिशा में जा रहा हो जाता है।

+0

मुझे नहीं लगता कि यह सुविधा चारों ओर कैश पाने के लिए बनाई गई थी, बल्कि गतिशील सामग्री से स्थिर कैश बनाने का एक तरीका है। – Ascherer

+0

देखा, यह वही है जो मैं चाहता था :) – manuelflara

1

दुर्भाग्य से यदि आप फ़ाइलों का नाम बदलने से बचना चाहते हैं, CloudFront के एपीआई के माध्यम से अमान्यकरण पल में ही उपलब्ध विकल्प हो रहा है। फाइलों का नाम बदलने का दर्द तैनाती प्रक्रिया को स्वचालित करके कम किया जा सकता है।

+1

इस अमान्यता का उपयोग करने के बजाय, आप क्वेरीपैथ के हिस्से के रूप में URL में पैरामीटर भी जोड़ सकते हैं। कुछ यूआरएल पुनर्लेखन के साथ यह पूरी तरह से काम करता है। – Wouter

0

संक्षिप्त उत्तर, नहीं। एक सीडीएन का उपयोग स्थिर परिसंपत्तियों के लिए किया जाना चाहिए जो अक्सर नहीं बदलते हैं।

उनके docs से:

जब CloudFront मूल सर्वर एक वस्तु का अनुरोध करता है, यह किसी भी क्वेरी स्ट्रिंग पैरामीटर निकाल देता है।

सुनिश्चित करें कि आपके सर्वर ठीक से Expires हेडर और/या Cache-Control: max-age हेडर पारित करने के लिए की स्थापना की गई है। वर्तमान में हम अधिकतम आयु = 1800

+0

यह क्यों कम किया गया था? – Ascherer

+1

इस से पूरी तरह से असहमत हैं। वेब समुदाय में कई लोग क्वेरी स्ट्रिंग्स का उपयोग "कैश ब्रेकर" के रूप में करते हैं ताकि वे संपत्तियों के कैश किए गए संस्करणों को प्राप्त कर सकें जिन्हें बाईपास (जैसे कि आपकी जेएस फ़ाइल में एक बग फिक्स जिसे आपने भविष्य में 30 दिनों के लिए समाप्ति निर्धारित की है) ।सीएसएस फाइलों, छवियों, और कुछ भी जो आप सीडीएन से होस्ट करेंगे, के लिए भी यही है। तथ्य यह है कि, स्थिर संपत्तियां बदलती हैं और आपको क्लाइंट पर पहले कैश किए गए किसी भी आइटम को अनदेखा करने के लिए इस तंत्र की आवश्यकता होती है। – longda

+1

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

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