למד כיצד להתקין אחסון קבצים S3 באמצעות מדריך שלב אחר שלב זה.
אם אתה בונה אפליקציית אינטרנט של Django, חיוני לטפל בנכסים סטטיים וקבצי מדיה שהועלו על ידי משתמשים ביעילות.
בסביבת פיתוח, Django מנהל את הקבצים הללו. עם זאת, בהפקה תרצה לבחון אפשרויות נוספות. בסיס המשתמשים שלך עשוי לגדול באופן משמעותי, וייתכן שאתה מתמודד עם קבצים הרבה יותר גדולים, כמו אודיו ווידאו.
דלי השירות הפשוט של Amazon Web Services (AWS) Simple Storage Service (S3) הוא חלופה אחת לאירוח קבצי סטטי ומדיה. על ידי שילוב S3 עם Django, אתה יכול להוריד את עומס ניהול הקבצים מהשרת שלך, להפחית עומס ולהבטיח אספקה מהירה ואמינה יותר של נכסים.
שלב 1: צור חשבון AWS
אם אין לך חשבון AWS, נווט אל אתר AWS, וצור חשבון חדש.
לחשבונות AWS חדשים יש גישה חופשית ל-5GB של אחסון סטנדרטי S3 בכל חודש למשך שנה.
שלב 2: צור דלי S3 עבור הפרויקט שלך
- לאחר יצירת חשבון AWS שלך, היכנס וחפש S3 בסרגל החיפוש שלמעלה, ולאחר מכן בחר באפשרות הראשונה.
- לאחר בחירת האפשרות הראשונה, תראה דף חדש. לחץ על צור דלי לַחְצָן:
- לאחר מכן, ספק שם לדלי S3 שלך. אתה יכול להשאיר את רוב התצורה כברירת מחדל.
- גלול מטה אל חסום הגדרות גישה ציבורית עבור דלי זה בקטע, בטל את הסימון של חסום כל גישה ציבורית הגדרה, ואשר את האזהרה שמופיעה.
- לאחר שתסיים, לחץ על צור דלי לַחְצָן. זה יפנה אותך לדף שמציג רשימה של דלי S3 שיצרת.
שלב 3: צור משתמש IAM ב-AWS
AWS מספקת שירות בשם IAM (ניהול זהות וגישה). זה מאפשר לך ליצור חשבון נפרד לאדם או אפליקציה ספציפיים שצריכים ליצור אינטראקציה עם שירותי AWS.
אתה יכול להקצות רמות שונות של הרשאות למשתמשי IAM, המייצגים אנשים או יישומים המקיימים אינטראקציה עם שירותי AWS שיצרת. עם משתמשי IAM, אתה יכול להבטיח שלכל משתמש תהיה גישה רק למשאבים שהם צריכים ותו לא.
למטרות אבטחה, עליך ליצור משתמש IAM עבור פרויקט Django שלך כדי ליצור אינטראקציה עם דלי S3 שלך. בצע את השלבים הבאים כדי ליצור משתמש IAM ב-AWS:
- בשורת החיפוש, הקלד אני ובחר באפשרות הראשונה. יופיע דף חדש.
- בצד שמאל של דף IAM, בחר משתמשים, ולאחר מכן המשך ללחוץ על הוסף משתמשים לַחְצָן. זה יפתח דף נוסף כדי למלא קצת מידע.
- התחל על ידי הזנת שם עבור משתמש IAM ולחיצה על הַבָּא כפתור בתחתית: בעמוד הבא, עליך לבחור את רמות ההרשאה עבור משתמש IAM. בצע את השלבים הבאים:
- ראשית, בחר את צרף מדיניות ישירות אפשרות מה אפשרויות הרשאות סָעִיף.
- לאחר מכן, הגדר מדיניות הרשאה עבור משתמש IAM שלך. זה יקבע מה משתמש IAM יכול ומה לא יכול לעשות. מכיוון שאתה רוצה שהאפליקציה Django שלך תוריד ותעלה קבצים, עליך לתת לה גישה מלאה לדלי S3.
- בתוך ה מדיניות הרשאות קטע, עליך לחפש S3FullAccess ובחר באפשרות. לאחר שתסיים, לחץ על הַבָּא לַחְצָן.
- לאחר מכן, עיין במדיניות עבור משתמש IAM ולחץ על צור משתמש לחצן ליצירת משתמש IAM שלך.
שלב 4: צור מפתח גישה עבור משתמש IAM שלך
ב-AWS, מפתח גישה מתייחס לאישורים שבהם אתה יכול להשתמש כדי לאמת ולגשת בצורה מאובטחת למשאבי AWS באופן פרוגרמטי. פרויקט ה-Django שלך חייב לספק את האישורים האלה כדי לגשת לדלי S3 שלך.
השלבים הבאים יעזרו לך ליצור מפתח גישה לפרויקט שלך.
- לאחר יצירת משתמש IAM שלך, תקבל הודעת התראה המנחה אותך להציג את המשתמש. לחלופין, אתה יכול לראות את המשתמש על ידי לחיצה על שם משתמש.
- לאחר מכן, בחר את אישורי אבטחה בכרטיסייה, גלול למטה כדי למצוא את מפתחות גישה סעיף ובחר צור מפתח גישה.
- תצטרך לבחור מקרה שימוש עבור הגישה שלך, כך ש-AWS תוכל להמליץ על אפשרות חלופית במידת הצורך. זה לא משפיע על מפתח הגישה שלך. אל תהסס לבחור אפשרות כגון שירות של צד שלישי אוֹ קוד מקומי ומכירים באזהרה שצצה. לאחר שתסיים, לחץ על הַבָּא לַחְצָן.
- בעמוד הבא, הזן תג תיאור עבור מפתח הגישה שלך ולחץ על צור מפתח גישה לַחְצָן.
- לאחר יצירת מפתח הגישה שלך, תוכל להעתיק את האישורים שלך או להוריד אותם כקובץ CSV. כך או כך, הקפד לשמור על נתונים אלה בטוחים ומאובטחים.
שלב 5: הגדר את פרויקט ה-Django שלך עבור S3 Bucket
כדי להשתמש בדלי S3 שלך עם פרויקט Django, התקן את החבילות הבאות:
- אחסון דג'נגו: חבילה זו תעזור לך להגדיר קצה אחורי לאחסון עבור הקבצים שלך.
- boto3: החבילה הזו היא ה-AWS ערכת פיתוח תוכנה (SDK) כדי לעזור לפרויקט Python שלך ליצור אינטראקציה עם AWS.
אתה יכול להתקין חבילות אלה ב- סביבה וירטואלית של Python עם מנהל החבילות Pip של Python על ידי הקלדת פקודה זו בטרמינל שלך:
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 Bucket להרבה יותר
האפשרויות של דליים של AWS S3 הן עצומות! כדאי להכיר את זה וללמוד כיצד להשתמש ב-S3 למטרות אחרות, כמו אירוח של יישום אינטרנט סטטי.
לדעת כיצד להשתמש נכון בדלי S3 יחסוך לך זמן רב ויעזור לך לבנות מוצר או פתרון טובים יותר. אבל אתה צריך גם להיות מודע לכך ש-S3 עשוי שלא להתאים לכל מקרה, אז שקול את דרישות הפרויקט שלך לפני השימוש בו.