2012-07-02 12 views
5

परिदृश्य: एक Django ऐप विभिन्न मॉडलों में ऑब्जेक्ट से संबंधित कई छोटी फाइलें उत्पन्न करता है।बड़ी संख्या में फाइलों के लिए Django फाइल सिस्टम स्टोरेज

मैंने डिफ़ॉल्ट फ़ाइलस्टाइल का उपयोग करते समय, एक निर्देशिका में बड़ी संख्या में फ़ाइलों की पीढ़ी से बचने के लिए बहुत सी खोज की है।

django-fsfield इसके लिए एकमात्र खुला स्रोत समाधान है? एक और चीज जो आप डीआईआर में बड़ी संख्या में इनोड को ठीक करने के लिए सिफारिश करेंगे?

धन्यवाद!

उत्तर

2

एक मोंगोडीबी संग्रह में सामग्री को संग्रहीत करने पर विचार करें।

चूंकि फ़ाइलें छोटी हैं, इसलिए आप फ़ाइल सामग्री वाले एक binary field के साथ मोंगोडीबी दस्तावेज़ बना सकते हैं। इस मामले में "छोटे" का अर्थ मोंगोडीबी दस्तावेज़ आकार सीमा से कम है, वर्तमान में 16 एमबी।

यदि आपको बड़ी फ़ाइलों को स्टोर करने की आवश्यकता है, तो मोंगो gridfs के साथ इसका समर्थन करता है।

When to use GridFS भी देखें।

0

एक कस्टम स्टोरेज मैनेजर का भी उपयोग कर सकते हैं कि यदि फ़ाइल छोटी है तो इसे बाइनरी फ़ील्ड वाले डेटाबेस मॉडल में सहेजें और 16 एमबी की छोटी फ़ाइलों को सहेजें और अन्य डेटाबेस का उपयोग करने की आवश्यकता नहीं है।

2

मैं django-castor का उपयोग कर रहा हूं।

Django-अरंडी जो एक सामग्री से पता भंडारण बैकएंड प्रदान करता है Django के लिए एक फिर से प्रयोग करने योग्य एप्लिकेशन है। मुख्य वर्ग, djcastor.storage.CAStorage, FileSystemStorage का एक प्रकार है जो फ़ाइलों को उनके SHA-1 पाचन के अंतर्गत सहेजता है।

  • कोई फर्क नहीं पड़ता कि कितनी बार एक ही फाइल अपलोड की गई है, यह केवल कभी हो जाएगा एक बार संग्रहीत है, इस प्रकार अतिरेक को नष्ट करने।

  • फ़ाइल नाम छद्म यादृच्छिक हैं और केवल हेक्साडेसिमल वर्णों से बने हैं, इसलिए आपको फ़ाइल नाम टकराव या स्वच्छता के बारे में चिंता करने की आवश्यकता नहीं है।

  • django-castor अपलोड 0 निर्देशिका में डाइजेस्ट के आधार पर फाइलों को shards; यह फाइल सिस्टम मुद्दों को रोकता है जब बहुत सी फाइलें निर्देशिका में होती हैं।

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