इस चरण-दर-चरण मार्गदर्शिका का उपयोग करके S3 फ़ाइल संग्रहण के साथ सेटअप करना सीखें।
यदि आप Django वेब ऐप बना रहे हैं, तो स्थैतिक संपत्तियों और उपयोगकर्ता द्वारा अपलोड की गई मीडिया फ़ाइलों को कुशलतापूर्वक संभालना आवश्यक है।
विकास परिवेश में, Django इन फ़ाइलों का प्रबंधन करता है। हालाँकि, उत्पादन में, आप आगे के विकल्प तलाशना चाहेंगे। आपका उपयोगकर्ता आधार काफ़ी बढ़ सकता है, और हो सकता है कि आप ऑडियो और वीडियो जैसी बहुत बड़ी फ़ाइलों से निपट रहे हों।
अमेज़ॅन वेब सर्विसेज (एडब्ल्यूएस) सिंपल स्टोरेज सर्विस (एस3) बकेट स्थिर और मीडिया फ़ाइलों को होस्ट करने के लिए एक विकल्प है। S3 को Django के साथ एकीकृत करके, आप अपने सर्वर से फ़ाइल प्रबंधन का बोझ उतार सकते हैं, लोड कम कर सकते हैं, और संपत्तियों की तेज़, अधिक विश्वसनीय डिलीवरी सुनिश्चित कर सकते हैं।
चरण 1: एक AWS खाता बनाएँ
यदि आपके पास AWS खाता नहीं है, तो नेविगेट करें एडब्ल्यूएस साइट, और एक नया खाता बनाएं।
नए AWS खातों में एक वर्ष के लिए प्रत्येक माह 5GB S3 मानक स्टोरेज की निःशुल्क पहुंच होती है।
चरण 2: अपने प्रोजेक्ट के लिए एक S3 बकेट बनाएं
- अपना AWS खाता बनाने के बाद, लॉग इन करें और खोजें एस3 शीर्ष पर खोज बार में, फिर पहला विकल्प चुनें।
- पहला विकल्प चुनने के बाद आपको एक नया पेज दिखाई देगा। क्लिक करें बाल्टी बनाएँ बटन:
- इसके बाद, अपने S3 बकेट के लिए एक नाम प्रदान करें। आप अधिकांश कॉन्फ़िगरेशन को डिफ़ॉल्ट के रूप में छोड़ सकते हैं।
- नीचे स्क्रॉल करें इस बकेट के लिए सार्वजनिक एक्सेस सेटिंग्स को ब्लॉक करें अनुभाग, अनचेक करें सभी सार्वजनिक पहुंच को अवरुद्ध करें सेटिंग करें, और दिखाई देने वाली चेतावनी को स्वीकार करें।
- एक बार हो जाने पर, क्लिक करें बाल्टी बनाएँ बटन। यह आपको एक पृष्ठ पर पुनर्निर्देशित करेगा जो आपके द्वारा बनाए गए S3 बकेट की एक सूची दिखाएगा।
चरण 3: AWS पर एक IAM उपयोगकर्ता बनाएं
AWS IAM (आइडेंटिटी एंड एक्सेस मैनेजमेंट) नामक एक सेवा प्रदान करता है। यह आपको किसी विशिष्ट व्यक्ति या एप्लिकेशन के लिए एक अलग खाता बनाने की अनुमति देता है जिसे AWS सेवाओं के साथ इंटरैक्ट करने की आवश्यकता होती है।
आप IAM उपयोगकर्ताओं को विभिन्न स्तरों की अनुमतियाँ प्रदान कर सकते हैं, जो उन व्यक्तियों या एप्लिकेशन का प्रतिनिधित्व करते हैं जो आपके द्वारा बनाई गई AWS सेवाओं के साथ इंटरैक्ट करते हैं। IAM उपयोगकर्ताओं के साथ, आप यह सुनिश्चित कर सकते हैं कि प्रत्येक उपयोगकर्ता के पास केवल उन संसाधनों तक पहुंच है जिनकी उन्हें आवश्यकता है और इससे अधिक कुछ नहीं।
सुरक्षा उद्देश्यों के लिए, आपको अपने S3 बकेट के साथ इंटरैक्ट करने के लिए अपने Django प्रोजेक्ट के लिए एक IAM उपयोगकर्ता बनाना चाहिए। AWS पर IAM उपयोगकर्ता बनाने के लिए इन चरणों का पालन करें:
- सर्च बार में टाइप करें मैं हूँ और पहला विकल्प चुनें. एक नया पेज दिखाई देगा.
- IAM पेज के बाईं ओर, चुनें उपयोगकर्ताओं, फिर क्लिक करने के लिए आगे बढ़ें उपयोगकर्ता जोड़ें बटन। यह कुछ जानकारी भरने के लिए एक और पेज खोलेगा।
- IAM उपयोगकर्ता के लिए एक नाम दर्ज करके और क्लिक करके प्रारंभ करें अगला नीचे बटन: अगले पृष्ठ पर, आपको IAM उपयोगकर्ता के लिए अनुमति स्तर का चयन करना होगा। इन चरणों का पालन करें:
- सबसे पहले, का चयन करें नीतियां सीधे संलग्न करें से विकल्प अनुमतियाँ विकल्प अनुभाग।
- इसके बाद, अपने IAM उपयोगकर्ता के लिए एक अनुमति नीति परिभाषित करें। यह निर्धारित करेगा कि IAM उपयोगकर्ता क्या कर सकता है और क्या नहीं। चूँकि आप चाहते हैं कि आपका Django ऐप फ़ाइलें डाउनलोड और अपलोड करे, आपको इसे S3 बकेट तक पूर्ण पहुंच देनी चाहिए।
- में अनुमतियाँ नीतियां अनुभाग, आपको खोजना चाहिए S3पूर्ण पहुँच और विकल्प का चयन करें. एक बार हो जाने पर, क्लिक करें अगला बटन।
- इसके बाद, IAM उपयोगकर्ता के लिए नीतियों की समीक्षा करें और क्लिक करें उपयोगकर्ता बनाइये अपना IAM उपयोगकर्ता बनाने के लिए बटन।
चरण 4: अपने IAM उपयोगकर्ता के लिए एक एक्सेस कुंजी बनाएं
AWS में, एक एक्सेस कुंजी उन क्रेडेंशियल्स को संदर्भित करती है जिनका उपयोग आप AWS संसाधनों को प्रोग्रामेटिक रूप से प्रमाणित और सुरक्षित रूप से एक्सेस करने के लिए कर सकते हैं। आपके Django प्रोजेक्ट को आपके S3 बकेट तक पहुंचने के लिए ये क्रेडेंशियल प्रदान करने होंगे।
निम्नलिखित चरण आपको अपने प्रोजेक्ट के लिए एक्सेस कुंजी बनाने में मदद करेंगे।
- अपना IAM उपयोगकर्ता बनाने के बाद, आपको एक अलर्ट संदेश मिलेगा जो आपको उपयोगकर्ता को देखने के लिए प्रेरित करेगा। वैकल्पिक रूप से, आप पर क्लिक करके उपयोगकर्ता को देख सकते हैं उपयोगकर्ता नाम.
- अगला, का चयन करें सुरक्षा प्रमाण पत्र टैब, खोजने के लिए नीचे स्क्रॉल करें पहुँच कुंजियाँ अनुभाग, और चयन करें पहुंच कुंजी बनाएं.
- आपको अपनी पहुंच के लिए एक उपयोग के मामले का चयन करना होगा, ताकि AWS जहां उपयुक्त हो, एक वैकल्पिक विकल्प की सिफारिश कर सके। यह आपकी एक्सेस कुंजी को प्रभावित नहीं करता है. जैसे कोई विकल्प चुनने के लिए स्वतंत्र महसूस करें तृतीय-पक्ष सेवा या स्थानीय कोड और सामने आने वाली चेतावनी को स्वीकार करें। एक बार हो जाने पर, क्लिक करें अगला बटन।
- अगले पेज पर, अपनी एक्सेस कुंजी के लिए एक विवरण टैग दर्ज करें और क्लिक करें पहुंच कुंजी बनाएं बटन।
- अपनी एक्सेस कुंजी बनाने के बाद, आप या तो अपने क्रेडेंशियल्स की प्रतिलिपि बना सकते हैं या उन्हें सीएसवी फ़ाइल के रूप में डाउनलोड कर सकते हैं। किसी भी तरह से, इस डेटा को सुरक्षित रखना सुनिश्चित करें।
चरण 5: S3 बकेट के लिए अपना Django प्रोजेक्ट कॉन्फ़िगर करें
Django प्रोजेक्ट के साथ अपने S3 बकेट का उपयोग करने के लिए, इन पैकेजों को स्थापित करें:
- django-स्टोरेज: यह पैकेज आपकी फ़ाइलों के लिए स्टोरेज बैकएंड को परिभाषित करने में आपकी सहायता करेगा।
- boto3: यह पैकेज AWS है सॉफ़्टवेयर डेवलपमेंट किट (एसडीके) आपके पायथन प्रोजेक्ट को AWS के साथ इंटरैक्ट करने में मदद करने के लिए।
आप इन पैकेजों को अपने में इंस्टॉल कर सकते हैं पायथन आभासी वातावरण अपने टर्मिनल में यह कमांड टाइप करके पायथन के पिप पैकेज मैनेजर के साथ:
pip install django-storages boto3
एक बार जब आप इन पैकेजों को सफलतापूर्वक स्थापित कर लें, तो अपना खोलें सेटिंग्स.py फ़ाइल करें और जोड़ें boto3 इंस्टॉल किए गए ऐप्स के लिए.
आखिरी काम यह है कि अपने Django प्रोजेक्ट को AWS S3 बकेट का उपयोग करने के लिए कॉन्फ़िगर करें। उपयोग करने के लिए सामान्य कॉन्फ़िगरेशन यहां दिया गया है:
AWS_ACCESS_KEY_ID = 'AWS_ACCESS_KEY_ID '
AWS_SECRET_ACCESS_KEY = 'AWS_SECRET_ACCESS_KEY'
AWS_STORAGE_BUCKET_NAME = 'AWS_STORAGE_BUCKET_NAME'
AWS_S3_SIGNATURE_NAME = 's3v4',
AWS_S3_REGION_NAME = 'AWS_S3_REGION_NAME'
AWS_S3_FILE_OVERWRITE = False
AWS_DEFAULT_ACL = None
AWS_S3_VERITY = True
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
उपरोक्त कॉन्फ़िगरेशन को अपने में चिपकाएँ सेटिंग्स.py फ़ाइल करें और तदनुसार मान बदलें। अपना बदलें AWS_ACCESS_KEY_ID और AWS_SECRET_ACCESS_KEY उस एक्सेस कुंजी और गुप्त एक्सेस कुंजी के साथ जिसे आपने पहले कॉपी या डाउनलोड किया था। आपको भी बदलना चाहिए AWS_STORAGE_BUCKET_NAME और AWS_S3_REGION_NAME आपके S3 बकेट और क्षेत्र के नाम पर।
आप अपने S3 बकेट पर नेविगेट करके और अंतिम मानों को कॉपी करके क्षेत्र का नाम प्राप्त कर सकते हैं एडब्ल्यूएस क्षेत्र स्तंभ।
चरण 6: अपने AWS कॉन्फ़िगरेशन का परीक्षण करें
उपरोक्त चरण पूरे होने पर, आपको फ़ाइलें अपलोड करके अपने एप्लिकेशन का परीक्षण करने के लिए तैयार रहना चाहिए। निम्नलिखित कोड नमूने सीधे व्यवस्थापक पैनल से फ़ाइलें अपलोड करेंगे, लेकिन आप किसी अन्य स्थान से अपनी फ़ाइलें अपलोड करने के लिए स्वतंत्र हैं।
संदर्भ के लिए, आपके पास एक मॉडल हो सकता है जो इस तरह दिखता है:
classPost(models.Model):
title = models.CharField(max_length=225, blank=False, null=False)
content = models.TextField('Post Body', blank=False, null=False)
author = models.CharField(max_length=225, blank=False, null=False)
date_published = models.DateTimeField(auto_now=True)
image = models.ImageField(upload_to='posts')
def__str__(self):
return self.title
सुनिश्चित करें कि आप आवश्यक ऑपरेशन जैसे माइग्रेशन, इसे एडमिन पैनल में जोड़ना, एक दृश्य बनाना और अपने प्रोजेक्ट के लिए आवश्यक अन्य चीजें करते हैं। सुनिश्चित करें कि आप अभ्यास करें Django का MVT सिद्धांत.
एक बार जब आप काम पूरा कर लें, तो अपने व्यवस्थापक पैनल या फ़ाइल अपलोड के लिए आपने जो भी फॉर्म बनाया है, उस पर जाएँ और एक छवि फ़ाइल अपलोड करें।
अपनी मुख्य साइट पर जाएँ और पुष्टि करें कि छवि वहाँ है। यदि ऐसा है, तो छवि पर राइट-क्लिक करें और चुनें नए टैब में चित्र को खोलें विकल्प। छवि वाले नए टैब में, आप देखेंगे कि पता बार आपके द्वारा पहले बनाए गए S3 बकेट का संदर्भ देता है:
यह पुष्टि करने का दूसरा तरीका कि आपका कॉन्फ़िगरेशन काम कर रहा है, AWS कंसोल पर अपनी बकेट पर नेविगेट करना है। आपको अपनी छवि वहां मिलेगी:
चरण 7: स्टेटिक फ़ाइलें अपने S3 बकेट में एकत्रित करें
अब तक, आप अपने S3 बकेट में मीडिया फ़ाइलें अपलोड करने में सक्षम रहे हैं; अब, आपको अपनी स्थिर फ़ाइलें अपलोड करनी होंगी।
ऐसा करने के लिए, इन कॉन्फ़िगरेशन को अपने में जोड़ें सेटिंग्स.py फ़ाइल:
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
AWS_LOCATION = 'static'
उसके बाद, अपना खोलें कमांड लाइन इंटरफ़ेस (सीएलआई) और यह आदेश चलाएँ:
python manage.py collectstatic --noinput
यह पुष्टि करने के लिए कि सब कुछ काम करता है, AWS कंसोल में अपना S3 बकेट खोलें। आपको नाम का एक फोल्डर दिखाई देगा स्थिर.
और अधिक के लिए AWS S3 बकेट का उपयोग करें
AWS S3 बकेट की संभावनाएँ बहुत अधिक हैं! आपको इससे परिचित होना चाहिए और सीखना चाहिए कि अन्य उद्देश्यों के लिए S3 का उपयोग कैसे करें, जैसे कि एक स्थिर वेब एप्लिकेशन होस्ट करना।
S3 बकेट का सही तरीके से उपयोग करने का तरीका जानने से आपका बहुत समय बचेगा और आपको एक बेहतर उत्पाद या समाधान बनाने में मदद मिलेगी। लेकिन आपको यह भी पता होना चाहिए कि S3 हर मामले के लिए उपयुक्त नहीं हो सकता है, इसलिए इसका उपयोग करने से पहले अपनी परियोजना आवश्यकताओं पर विचार करें।