2009-03-30 10 views
5

मेरी रेल ऐप को पीडीएफ एक्सएफए फाइलों को संसाधित और उत्पन्न करना है और उपयोगकर्ता/ब्राउज़र को भेजना है। यह ठीक काम कर रहा है। लेकिन मुद्दा यह है कि उपयोगकर्ता को फ़ाइल भेजने से पहले, यह रेल टीएमपी निर्देशिका में 2 फाइलें बनाता है।रूबी-रेल में स्वचालित रूप से अस्थायी फ़ाइलों को कैसे हटाएं?

यदि 10 अनुरोध pdf_controller पर आते हैं, तो tmp निर्देशिका में अस्थायी फ़ाइलों की संख्या दोगुनी हो जाएगी और यह स्थान खाएगी।

चारों ओर खोज करने के बाद मैंने सोचा कि स्वीपर बचाव के लिए आएगा। लेकिन स्वीपर के बारे में ज्यादा जानकारी नहीं है।

तो, क्या कोई भी सुझाव दे सकता है कि किस तरह से जाना है?

उत्तर

1

आप एक क्रॉन कार्य का उपयोग कर सकते हैं, जो हर एन मिनट में फ़ाइलों को हटा देता है, या आप नियंत्रक से हटाने को ऑर्डर कर सकते हैं।

+1

क्रॉन अच्छा समाधान नहीं हो सकता है। जब उपयोगकर्ता को टेम्पफाइल बनाया गया है तो पीडीएफ फाइल बनाई गई है और यदि वह कभी-कभी पीडीएफ फॉर्म जमा नहीं करता है और यदि उस क्रॉन को निकाल दिया जाता है और temp फ़ाइल को हटा दिया जाता है, और बाद में जब उपयोगकर्ता पीडीएफ फॉर्म जमा करता है, तो सिस्टम ढीला/अवैध। – Autodidact

5

ऑब्जेक्ट को अंतिम रूप देने पर Tempfile फ़ाइलों को हटा देगा।

Tempfile on Rdoc

उदाहरण:

def get_pdf 
    model = Model.find(params[:id]) 
    file = Tempfile.new 
    model.to_pdf(file) 
    send_file file.path, ... 
end 

मैं अगर आप अपने प्रश्न में अपने कोड पेस्ट एक बेहतर उदाहरण दे सकता है।

+0

हाय स्कॉट! मुझे लगता है कि Tempfile समाधान हो सकता है। लेकिन मैं अभी भी उलझन में हूं कि मैंने ऊपर बताए गए कार्य को करने के लिए इसका उपयोग कैसे किया है। एक उदाहरण बहुत बेहतर होगा। धन्यवाद – Autodidact

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