تعرف على كيفية الإعداد مع تخزين الملفات S3 باستخدام هذا الدليل التفصيلي.

إذا كنت تقوم بإنشاء تطبيق ويب Django ، فمن الضروري التعامل مع الأصول الثابتة وملفات الوسائط التي تم تحميلها بواسطة المستخدم بكفاءة.

في بيئة التطوير ، يدير Django هذه الملفات. ومع ذلك ، في الإنتاج ، سترغب في استكشاف المزيد من الخيارات. قد تنمو قاعدة المستخدمين لديك بشكل كبير ، وقد تتعامل مع ملفات أكبر بكثير ، مثل الصوت والفيديو.

تعد حاوية Amazon Web Services (AWS) Simple Storage Service (S3) أحد البدائل لاستضافة الملفات الثابتة وملفات الوسائط. من خلال دمج S3 مع Django ، يمكنك التخلص من عبء إدارة الملفات من الخادم الخاص بك ، وتقليل الحمل ، وضمان تسليم الأصول بشكل أسرع وأكثر موثوقية.

الخطوة 1: أنشئ حساب AWS

إذا لم يكن لديك حساب AWS ، فانتقل إلى ملف موقع AWS، وأنشئ حسابًا جديدًا.

تتمتع حسابات AWS الجديدة بوصول مجاني إلى 5 جيجا بايت من التخزين القياسي S3 كل شهر لمدة عام.

الخطوة 2: قم بإنشاء حاوية S3 لمشروعك

  1. بعد إنشاء حساب AWS الخاص بك ، قم بتسجيل الدخول والبحث عن S3 في شريط البحث في الأعلى ، ثم حدد الخيار الأول.
  2. بعد تحديد الخيار الأول ، سترى صفحة جديدة. انقر على إنشاء دلو زر:
  3. instagram viewer
  4. بعد ذلك ، قم بتوفير اسم لحاوية S3 الخاصة بك. يمكنك ترك معظم التكوين كافتراضي.
  5. قم بالتمرير لأسفل إلى ملف حظر إعدادات الوصول العام لهذه المجموعة القسم ، قم بإلغاء تحديد حظر كل الوصول العام الإعداد ، والإقرار بالتحذير الذي يظهر.
  6. بمجرد الانتهاء ، انقر فوق إنشاء دلو زر. سيعيد توجيهك إلى صفحة تعرض قائمة بحاويات S3 التي قمت بإنشائها.

الخطوة 3: أنشئ مستخدم IAM على AWS

توفر AWS خدمة تسمى IAM (إدارة الهوية والوصول). يتيح لك ذلك إنشاء حساب منفصل لشخص أو تطبيق معين يحتاج إلى التفاعل مع خدمات AWS.

يمكنك تعيين مستويات مختلفة من الأذونات لمستخدمي IAM ، والتي تمثل الأفراد أو التطبيقات التي تتفاعل مع خدمات AWS التي قمت بإنشائها. مع مستخدمي IAM ، يمكنك التأكد من أن كل مستخدم لديه حق الوصول فقط إلى الموارد التي يحتاجها وليس أكثر.

لأغراض أمنية ، يجب عليك إنشاء مستخدم IAM لمشروع Django الخاص بك للتفاعل مع دلو S3 الخاص بك. اتبع هذه الخطوات لإنشاء مستخدم IAM على AWS:

  1. في شريط البحث ، اكتب أنا أكون وحدد الخيار الأول. ستظهر صفحة جديدة.
  2. على الجانب الأيمن من صفحة IAM ، حدد المستخدمون، ثم تابع للنقر فوق أضف المستخدمين زر. سيفتح صفحة أخرى لملء بعض المعلومات.
  3. ابدأ بإدخال اسم لمستخدم IAM والنقر فوق التالي زر في الأسفل: في الصفحة التالية ، يجب عليك تحديد مستويات الأذونات لمستخدم IAM. اتبع هذه الخطوات:
    1. أولاً ، حدد ملف إرفاق السياسات مباشرة خيار من خيارات الأذونات قسم.
    2. بعد ذلك ، حدد سياسة الإذن لمستخدم IAM الخاص بك. سيحدد هذا ما يمكن لمستخدم IAM فعله وما لا يمكنه فعله. نظرًا لأنك تريد أن يقوم تطبيق Django بتنزيل الملفات وتحميلها ، فيجب أن تمنحه حق الوصول الكامل إلى حاوية S3.
    3. في ال سياسات الأذونات قسم ، يجب عليك البحث عن S3FullAccess وحدد الخيار. بمجرد الانتهاء ، انقر فوق التالي زر.
  4. بعد ذلك ، راجع السياسات الخاصة بمستخدم IAM وانقر فوق إنشاء مستخدم زر لإنشاء مستخدم IAM الخاص بك.

الخطوة 4: إنشاء مفتاح وصول لمستخدم IAM الخاص بك

في AWS ، يشير مفتاح الوصول إلى بيانات الاعتماد التي يمكنك استخدامها للمصادقة والوصول الآمن إلى موارد AWS برمجيًا. يجب أن يوفر مشروع Django بيانات الاعتماد هذه للوصول إلى حاوية S3 الخاصة بك.

ستساعدك الخطوات التالية على إنشاء مفتاح وصول لمشروعك.

  1. بعد إنشاء مستخدم IAM الخاص بك ، ستتلقى رسالة تنبيه تطالبك بعرض المستخدم. بدلاً من ذلك ، يمكنك عرض المستخدم من خلال النقر فوق اسم المستخدم.
  2. بعد ذلك ، حدد ملف أوراق اعتماد الأمان علامة التبويب ، قم بالتمرير لأسفل للعثور على ملف مفاتيح الوصول ، وحدد إنشاء مفتاح الوصول.
  3. ستحتاج إلى تحديد حالة استخدام للوصول الخاص بك ، لذلك يمكن أن توصي AWS بخيار بديل عند الاقتضاء. لا يؤثر على مفتاح الوصول الخاص بك. لا تتردد في تحديد خيار مثل خدمة الطرف الثالث أو الكود المحلي وتسلم التحذير الذي ينبثق. بمجرد الانتهاء ، انقر فوق التالي زر.
  4. في الصفحة التالية ، أدخل علامة وصف لمفتاح الوصول الخاص بك وانقر فوق إنشاء مفتاح الوصول زر.
  5. بعد إنشاء مفتاح الوصول ، يمكنك إما نسخ بيانات الاعتماد الخاصة بك أو تنزيلها كملف CSV. في كلتا الحالتين ، تأكد من الحفاظ على هذه البيانات آمنة ومأمونة.

الخطوة 5: قم بتكوين مشروع Django الخاص بك لحاوية S3

لاستخدام دلو S3 الخاص بك مع مشروع Django ، قم بتثبيت هذه الحزم:

  • مخازن django: ستساعدك هذه الحزمة على تحديد خلفية تخزين لملفاتك.
  • boto3: هذه الحزمة هي AWS مجموعة تطوير البرمجيات (SDK) لمساعدة مشروع Python الخاص بك على التفاعل مع AWS.

يمكنك تثبيت هذه الحزم في ملف بيئة بايثون الافتراضية مع مدير حزمة Python Pip عن طريق كتابة هذا الأمر في جهازك الطرفي:

pip install django-storages boto3

بمجرد تثبيت هذه الحزم بنجاح ، افتح ملف settings.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'

الصق التكوين أعلاه في ملف settings.py ملف واستبدال القيم وفقًا لذلك. استبدل الخاص بك AWS_ACCESS_KEY_ID و AWS_SECRET_ACCESS_KEY باستخدام مفتاح الوصول ومفتاح الوصول السري الذي نسخته أو نزّلتهما مسبقًا. يجب عليك أيضًا تغيير ملف AWS_STORAGE_BUCKET_NAME و AWS_S3_REGION_NAME إلى أسماء حاوية S3 والمنطقة.

يمكنك الحصول على اسم المنطقة بالانتقال إلى حاوية S3 ونسخ القيم الأخيرة من ملف منطقة AWS عمود.

الخطوة 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

تأكد من تنفيذ العمليات الضرورية مثل عمليات الترحيل وإضافتها إلى لوحة الإدارة وإنشاء طريقة عرض وأشياء أخرى ضرورية لمشروعك. تأكد من الممارسة مبدأ دجانجو MVT.

بمجرد الانتهاء ، انتقل إلى لوحة الإدارة الخاصة بك أو أي نموذج قمت بإنشائه لتحميل الملف ، وقم بتحميل ملف صورة.

انتقل إلى موقعك الرئيسي وتأكد من وجود الصورة فيه. إذا كان الأمر كذلك ، فانقر بزر الماوس الأيمن على الصورة وحدد ملف إفتح الصورة بصفحة جديدة خيار. في علامة التبويب الجديدة التي تحتوي على الصورة ، ستلاحظ أن شريط العناوين يشير إلى حاوية S3 التي أنشأتها سابقًا:

هناك طريقة أخرى لتأكيد نجاح التكوين الخاص بك وهي الانتقال إلى الحاوية الخاصة بك على وحدة تحكم AWS. ستجد صورتك هناك:

الخطوة 7: جمع الملفات الثابتة في دلو S3 الخاص بك

حتى الآن ، تمكنت من تحميل ملفات الوسائط إلى حاوية S3 الخاصة بك ؛ الآن ، تحتاج إلى تحميل ملفاتك الثابتة.

للقيام بذلك ، أضف هذه التكوينات إلى ملف settings.py ملف:

STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
AWS_LOCATION = 'static'

بعد ذلك ، افتح ملف واجهة سطر الأوامر (CLI) وقم بتشغيل هذا الأمر:

python manage.py collectstatic --noinput

للتأكد من أن كل شيء يعمل ، افتح حاوية S3 في وحدة تحكم AWS. سترى مجلد يسمى ثابتة.

استخدم حاوية AWS S3 للمزيد

تعد إمكانيات حاويات AWS S3 هائلة! يجب أن تتعرف عليه وتتعلم كيفية استخدام S3 لأغراض أخرى ، مثل استضافة تطبيق ويب ثابت.

ستوفر لك معرفة كيفية استخدام حاويات S3 بشكل صحيح الكثير من الوقت وتساعدك على بناء منتج أو حل أفضل. ولكن يجب أن تدرك أيضًا أن S3 قد لا يكون مناسبًا لكل حالة ، لذا ضع في اعتبارك متطلبات مشروعك قبل استخدامه.