Django 2.1 - File storage API

फ़ाइल भंडारण एपीआई




django

फ़ाइल भंडारण एपीआई

वर्तमान संग्रहण वर्ग प्राप्त करना

Django वर्तमान भंडारण वर्ग का उपयोग करने के लिए दो सुविधाजनक तरीके प्रदान करता है:

class DefaultStorage [source]

DefaultStorage वर्तमान डिफ़ॉल्ट भंडारण प्रणाली के लिए आलसी पहुँच प्रदान करता है जैसा कि DEFAULT_FILE_STORAGE द्वारा परिभाषित किया गया है। DefaultStorage आंतरिक रूप से get_storage_class() का उपयोग करता है।

get_storage_class(import_path=None) [source]

एक वर्ग या मॉड्यूल लौटाता है जो भंडारण एपीआई को लागू करता है।

जब import_path किए बिना कहा जाता import_path पैरामीटर get_storage_class DEFAULT_FILE_STORAGE द्वारा परिभाषित के रूप में वर्तमान डिफ़ॉल्ट भंडारण प्रणाली को लौटाएगा। यदि import_path प्रदान किया गया है, तो get_storage_class दिए गए पथ से वर्ग या मॉड्यूल को आयात करने का प्रयास करेगा और सफल होने पर वापस आ जाएगा। यदि आयात असफल होता है तो एक अपवाद उठाया जाएगा।

FileSystemStorage वर्ग

class FileSystemStorage(location=None, base_url=None, file_permissions_mode=None, directory_permissions_mode=None) [source]

FileSystemStorage वर्ग एक स्थानीय फाइल सिस्टम पर बुनियादी फ़ाइल भंडारण को लागू करता है। यह Storage से विरासत में मिला है और इसके सभी सार्वजनिक तरीकों के लिए कार्यान्वयन प्रदान करता है।

location

फ़ाइलों को रखने वाली निर्देशिका के लिए पूर्ण पथ। आपके MEDIA_ROOT सेटिंग के मान को MEDIA_ROOT करता है।

base_url

URL जो इस स्थान पर संग्रहीत फ़ाइलों की सेवा करता है। आपके MEDIA_URL सेटिंग के मान में MEDIA_URL

file_permissions_mode

फ़ाइल सिस्टम अनुमति देता है कि फ़ाइल सहेजे जाने पर प्राप्त होगी। FILE_UPLOAD_PERMISSIONS डिफ़ॉल्ट।

directory_permissions_mode

फ़ाइल सिस्टम अनुमतियाँ जो निर्देशिका को सहेजे जाने पर प्राप्त होगी। FILE_UPLOAD_DIRECTORY_PERMISSIONS डिफ़ॉल्ट।

ध्यान दें

यदि फ़ाइल का नाम मौजूद नहीं है, तो FileSystemStorage.delete() विधि अपवाद नहीं उठाएगी।

get_created_time(name) [source]

सिस्टम के समय, यानी os.path.getctime() । कुछ सिस्टम (जैसे यूनिक्स) पर, यह अंतिम मेटाडेटा परिवर्तन का समय है, और दूसरों पर (विंडोज की तरह), यह फ़ाइल का निर्माण समय है।

Storage वर्ग

class Storage [source]

Storage वर्ग फ़ाइलों को संग्रहीत करने के लिए एक मानकीकृत एपीआई प्रदान करता है, साथ ही साथ डिफ़ॉल्ट व्यवहारों का एक सेट है जो अन्य सभी भंडारण प्रणालियों को आवश्यक रूप से विरासत या ओवरराइड कर सकता है।

ध्यान दें

जब विधियाँ भोली- os.environ['TZ'] वस्तुओं को वापस करती हैं, तो उपयोग किया जाने वाला प्रभावी समय-क्षेत्र os.environ['TZ'] का वर्तमान मूल्य होगा; ध्यान दें कि यह आमतौर पर Django के TIME_ZONE से सेट किया गया है।

delete(name) [source]

name संदर्भित फ़ाइल हटाता है। यदि NotImplementedError टारगेट स्टोरेज सिस्टम पर सपोर्ट नहीं है तो यह NotImplementedError को बढ़ा NotImplementedError

exists(name) [source]

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

get_accessed_time(name) [source]

फ़ाइल के अंतिम एक्सेस किए गए समय का datetime लौटाता है। अंतिम एक्सेस किए गए समय को वापस करने में असमर्थ भंडारण प्रणालियों के लिए यह NotImplementedError

यदि USE_TZ True , तो एक जागरूक USE_TZ लौटाता है, अन्यथा स्थानीय समय क्षेत्र में एक भोली USE_TZ लौटाता है।

get_available_name(name, max_length=None) [source]

name पैरामीटर के आधार पर एक फ़ाइल नाम लौटाता है जो लक्ष्य संग्रहण प्रणाली पर लिखी जाने वाली नई सामग्री के लिए मुफ़्त और उपलब्ध है।

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

यदि name फ़ाइल पहले से मौजूद है, तो एक अंडरस्कोर प्लस एक यादृच्छिक 7 वर्ण अल्फ़ान्यूमेरिक स्ट्रिंग एक्सटेंशन से पहले फ़ाइल नाम में जोड़ा जाता है।

get_created_time(name) [source]

फ़ाइल के निर्माण समय का datetime लौटाता है। भंडारण प्रणालियों के निर्माण के समय को वापस करने में असमर्थ के लिए यह NotImplementedError

यदि USE_TZ True , तो एक जागरूक USE_TZ लौटाता है, अन्यथा स्थानीय समय क्षेत्र में एक भोली USE_TZ लौटाता है।

get_modified_time(name) [source]

फ़ाइल के अंतिम संशोधित समय का datetime लौटाता है। पिछले संशोधित समय को वापस करने में असमर्थ भंडारण प्रणालियों के लिए यह NotImplementedError

यदि USE_TZ True , तो एक जागरूक USE_TZ लौटाता है, अन्यथा स्थानीय समय क्षेत्र में एक भोली USE_TZ लौटाता है।

get_valid_name(name) [source]

name पैरामीटर के आधार पर एक फ़ाइल नाम लौटाता है जो लक्ष्य भंडारण प्रणाली पर उपयोग के लिए उपयुक्त है।

generate_filename(filename) [source]

get_valid_name() कॉल करके filename को मान्य करता है और फ़ाइल नाम को save() विधि से पारित करने के save()

filename तर्क में FileField.upload_to द्वारा लौटाया गया पथ शामिल हो सकता है। उस स्थिति में, get_valid_name() लिए पथ पास नहीं किया जाएगा, लेकिन परिणामी नाम पर वापस भेज दिया जाएगा।

डिफ़ॉल्ट कार्यान्वयन os.path संचालन का उपयोग करता है। यदि आपके संग्रहण के लिए यह उचित नहीं है, तो इस विधि को ओवरराइड करें।

listdir(path) [source]

सूचियों का 2-टपल लौटाते हुए, निर्दिष्ट पथ की सामग्री को सूचीबद्ध करता है; पहला आइटम डायरेक्टरीज़, दूसरा आइटम फाइल्स जा रहा है। भंडारण प्रणालियों के लिए जो इस तरह की लिस्टिंग प्रदान करने में सक्षम नहीं हैं, यह बदले में NotImplementedError

open(name, mode='rb') [source]

name दी गई फ़ाइल खोलता है। ध्यान दें कि यद्यपि लौटी हुई फ़ाइल को File ऑब्जेक्ट होने की गारंटी है, यह वास्तव में कुछ उपवर्ग हो सकता है। रिमोट फाइल स्टोरेज के मामले में इसका मतलब है कि पढ़ना / लिखना काफी धीमा हो सकता है, इसलिए चेतावनी दी जाए।

path(name) [source]

स्थानीय फाइल सिस्टम पथ जहां पायथन के मानक open() का उपयोग करके फ़ाइल को खोला जा सकता है। भंडारण प्रणालियों के लिए जो स्थानीय फाइल सिस्टम से सुलभ नहीं हैं, यह इसके बजाय NotImplementedError को बढ़ाएगा।

save(name, content, max_length=None) [source]

भंडारण प्रणाली का उपयोग करके एक नई फ़ाइल बचाता है, अधिमानतः निर्दिष्ट नाम के साथ। यदि इस नाम के name कोई फ़ाइल पहले से मौजूद है, तो स्टोरेज सिस्टम एक अद्वितीय नाम प्राप्त करने के लिए फ़ाइल नाम को संशोधित कर सकता है। संग्रहीत फ़ाइल का वास्तविक नाम वापस कर दिया जाएगा।

get_available_name() तर्क get_available_name() साथ दिया गया है।

content तर्क में django.core.files.File की एक आवृत्ति होनी चाहिए। फ़ाइल या फ़ाइल की तरह ऑब्जेक्ट जिसे File में लपेटा जा सकता है।

size(name) [source]

name संदर्भित फ़ाइल का कुल आकार, बाइट्स में देता है। भंडारण प्रणालियों के लिए जो फ़ाइल का आकार वापस करने में सक्षम नहीं हैं, यह इसके बजाय NotImplementedError को बढ़ाएगा।

url(name) [source]

वह URL लौटाता है जहाँ name संदर्भित फ़ाइल की सामग्री तक पहुँचा जा सकता है। स्टोरेज सिस्टम के लिए जो URL द्वारा पहुंच का समर्थन नहीं करता है, इसके बजाय NotImplementedError