यदि फ़ाइल में कोई समान प्रविष्टि मौजूद नहीं है, तो क्या प्रबंधित फ़ाइलों को हटा दिया जाएगा?


9

मैं REST API को कार्यान्वित करने के लिए सेवाओं के मॉड्यूल का उपयोग कर रहा हूं। एक संसाधन अपलोड की गई फ़ाइलों के साथ POST की अनुमति देता है। एक सेवा पूर्व-प्रक्रिया फ़ंक्शन के दौरान मैं फ़ाइल को अस्थायी निर्देशिका में सहेजता हूं। सेवाओं की प्रक्रिया के बाद के कार्य के दौरान, मैं फ़ाइल को एक निजी निर्देशिका में स्थानांतरित करता हूं, file_usage_add कॉल करता हूं, और होस्ट इकाई को बचाता हूं। जब अस्थायी फ़ाइल को सहेजने और अस्थायी फ़ाइल को स्थायी स्थान पर ले जाने के बीच एक सत्यापन त्रुटि होती है, तो मैं स्पष्ट रूप से अस्थायी फ़ाइल को हटा नहीं रहा हूं। मैंने सोचा कि ड्रुपल क्रोन मेरे लिए इस बात का ध्यान रखेगा, क्योंकि इस फाइल के लिए कोई भी फाइल file_usage में मौजूद नहीं है। हालाँकि, ऐसा नहीं लगता है कि क्रोन मेरे लिए इसका ख्याल रख रहा है। किसी भी विचार के रूप में यह क्यों है?

जब file_managed की समीक्षा की जाती है, तो मुझे वह अस्थायी फ़ाइल दिखाई देती है जिसे मैं हटाना चाहता / चाहती हूँ। जब file_usage की समीक्षा करते हैं, तो मुझे कोई संगत रिकॉर्ड दिखाई नहीं देता है।

अद्यतन - जानकारी का एक अतिरिक्त टुकड़ा: ज्यादातर मामलों में, फ़ाइल वास्तव में गायब है। मेरा मानना ​​है कि यह ओएस रिबूट / टैम्प डायरेक्टरी को क्लीयर करने के कारण है। इसके बावजूद, क्या system_cron अभी भी एक फ़ाइल के लिए file_managed प्रविष्टि को हटा देगा यदि वास्तविक फ़ाइल अब नहीं मिली?

यह समस्या तब उत्पन्न हुई जब मैंने एक देशी मोबाइल ऐप से फाइलें अपलोड करना शुरू किया। फ़ाइलनाम प्रत्येक अपलोड के समान है। कुछ ऐसे मामले हैं जहां अस्थायी फ़ाइल नाम / tmp निर्देशिका में मौजूद नहीं है, लेकिन फ़ाइल_में प्रबंधित रिकॉर्ड अभी भी उस फ़ाइल नाम के URI के साथ मौजूद है। इसलिए मुझे एक अखंडता त्रुटि मिल रही है जब file_managed तालिका को सहेजा जा रहा है। मैं एक यादृच्छिक फ़ाइल नाम बनाने के लिए ऐप को अपडेट करने की योजना बना रहा हूं। इस बीच, मैं डेटाबेस और आसपास "गोंद" तर्क को साफ करना चाहूंगा जो इन फ़ाइलों का प्रबंधन करता है। अगर system_cron मेरे लिए यह सब करेगा तो बहुत अच्छा। लेकिन मैं जो बता सकता हूं, उससे system_cron पुराने, पूरी तरह से अप्रयुक्त (और अप्रतिबंधित) रिकॉर्डों को file_managed में नहीं निकाल रहा है।

जवाबों:


8

Drupal system_cron () में स्वचालित रूप से अस्थायी फ़ाइलों को हटा देता है ।

हालाँकि, जिन फ़ाइल में कोई file_usage नहीं है, उन्हें हटा दिया जाता है।


बिल्कुल यही मैने सोचा। हालाँकि, file_managed में प्रविष्टियाँ अभी भी चारों ओर लटकी हुई हैं, भले ही file_usage में कोई संगत प्रविष्टियाँ मौजूद नहीं हैं, और कोई भी वास्तविक फ़ाइल अब मौजूद नहीं है। मैं यहाँ कुछ कमी किया जाना चाहिए ...
lkiss80

3
जब तक यह एक है @ lkiss80 फ़ाइल को हटाया नहीं जाएगा statusमें शून्य की file_managedमेज
क्लाइव

4
और इसके अलावा, 6 घंटे से अधिक पुराना होना चाहिए।
बरदीर

@ क्लाइव - धन्यवाद। आपकी प्रतिक्रिया ने मुझे स्थिति बिट को दोगुना करने के लिए प्रेरित किया। मैंने मूल रूप से एक पुस्तक का उल्लेख किया है जो गलत तरीके से इस बिट का अर्थ निकालता है। एक बार फिर धन्यवाद!
lkiss80
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.