2014-07-25 5 views
6

मेरे पास एक बहु-परिस्थिति स्थिति में किसी विशेष परियोजना के कारण एक काफी गहरे आंकड़े फ़ाइल स्तर के साथ एक प्रेषक स्थापित किया गया है।क्या सीक्यू 5/एईएम अपाचे प्रेषक में निर्देशिकाओं को रिकर्स करना संभव है?

जो मैं उम्मीद कर रहा हूं वह अन्य किरायेदारों के लिए एक अधिक उथले आंकड़े फ़ाइल स्तर की नकल करने के लिए निर्देशिकाओं को फिर से भरने में सक्षम होने के लिए एक तरीका है।

क्या कोई प्रेषक फ्लश कमांड है जो मुझे सामग्री की निर्देशिका को स्पष्ट रूप से हटाने की अनुमति देता है?

उत्तर

4

आप अपने प्रेषक को एक सरल जीईटी अनुरोध भेज कर इसे प्राप्त कर सकते हैं। डिस्पैचर पर जिस पथ को आप हिट करने की आवश्यकता है वह /dispatcher/invalidate.cache है।

निम्न हेडर सुनिश्चित करें कि यह ठीक से संसाधित है:

  • सीक्यू-एक्शन: यह सामग्री हटाने के लिए "हटाएँ" करने के लिए सेट किया जा सकता है। मुझे लगता है कि "एक्सपेयर" सामग्री को पुराने रूप में ध्वजांकित करने के लिए भी काम करता है, लेकिन इसे कैश से शारीरिक रूप से हटा नहीं देता है।
  • सीक्यू-हैंडल: यह निर्दिष्ट करता है कि आपके कैश फ़ोल्डर की रूट से शुरू किया जाना चाहिए। जैसे "/ content/geometrixx", geometrixx और इसके तहत सबकुछ हटा देगा। "/" कैश में सबकुछ हटा देगा।
  • सामग्री-लंबाई & सामग्री-प्रकार: सुनिश्चित करें कि अनुरोध सही तरीके से संभाला गया है। चूंकि हम शरीर नहीं भेज रहे हैं, लंबाई को 0 पर सेट किया जा सकता है। सामग्री-प्रकार "एप्लिकेशन/ऑक्टेट-स्ट्रीम" हो सकता है (अन्य मानों की कोशिश नहीं की है)।

अंतिम कर्ल आदेश है कि आप का निर्माण होगा तो कुछ ऐसा दिखाई देगा:

curl -v \ 
-H "CQ-Action: DELETE" \ 
-H "CQ-Handle:/" \ 
-H "Content-Length: 0" \ 
-H "Content-Type: application/octet-stream" \ 
http://localhost:80/dispatcher/invalidate.cache; 

(यह जहां एक डिस्पैचर पर कैश पोर्ट 80 पर स्थानीय होस्ट के तहत चल रहा से सब कुछ को हटाने है।यहाँ यह बैकस्लैश, वैकल्पिक हैं बस इसे पढ़ने में आसान बनाने)


आप किसी भी बॉक्स (अपने फ़ायरवॉल प्रतिबंधों के अधीन, आदि) से इस GET अनुरोध जारी कर सकता है, उदाहरण के लिए, यह आ सकता है से:

  • एक अनुसूचित काम अपने प्रकाशित उदाहरण
  • अपने लेखक उदाहरण में एक व्यवस्थापक घटक है कि फ्लश करने के लिए किसी विशेष पथ लेता में
  • अपने सीआई निर्माण एजेंट।
+1

बहुत बहुत धन्यवाद। यही वही है जो मैं ढूंढ रहा था। लीजेंड। –

+0

मैंने कैश के तहत सब कुछ हटाने के लिए "/" के रूप में सीक्यू-हैंडल की कोशिश की, लेकिन यह कैश फ़ोल्डर के तहत सभी फ़ोल्डर्स को हटा नहीं रहा है, यह कैश फ़ोल्डर में .stat फ़ाइल को हटा देता है। मैं प्रेषक 4.1.9 पर हूं, अपाचे 2.2, विंडोज 7. एक फ़ोल्डर पूर्व "/ सामग्री" के लिए ठीक काम करता है। कुछ भी विशिष्ट है जिसे हमें "/" के लिए कॉन्फ़िगर करना है? –

+0

@ संदीप कुमार, जो मुझे पता नहीं है - आप 'सीक्यू-एक्शन: डेलेटी' हेडर भी भेज रहे हैं? क्या यह आपके लिए एक ही तकनीक स्टैक के वेनिला इंस्टॉलेशन पर काम करता है? – anotherdave

0

यह मुझे पूरी तस्वीर के लिए स्पष्ट नहीं है लेकिन आईआईआरसी प्रेषक फ्लश अगर पूरी निर्देशिका और इसकी सभी उपनिर्देशिकाओं को फ्लश करें। फ़ाइल प्रकार जिन्हें फ़्लश किया जाएगा आपके प्रेषक कॉन्फ़िगरेशन पर निर्भर करता है।

तो यदि आप पूरी साइट फ्लश/सामग्री/geometrixx फ्लश हो जाएंगे। (अगर मुझे गलत याद है तो कृपया कोई मुझे सही करें)।

ऐसा करने का सबसे आसान तरीका यह है कि उस पृष्ठ को पुनः सक्रिय करने के लिए IMHO है जो उस क्षेत्र की रूट है जिसे आप फ़्लश करना चाहते हैं। नहीं तो आप भी

http://docs.adobe.com/docs/en/aem/6-0/deploy/configuring/replication.html#Extended

अन्य विकल्प है कि हमेशा काम करता है HTTP हेडर लेकिन कर्ल आज्ञा या ओएस प्रक्रियाओं के साथ भेजा कि निर्देशिका हटाता है जैसे ही हैं डिस्पैचर को अपनी खुद की गोफन सर्वलेट कि उचित हेडर भेजता है को विकसित कर सकता फ़ाइल सिस्टम से ।

मैं नहीं कह रहा हूं कि आखिरी दो सबसे अच्छे हैं क्योंकि प्रभाव हो सकते हैं; लेकिन उन्हें नौकरी भी करनी चाहिए।

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