Ebből a lépésenkénti útmutatóból megtudhatja, hogyan állíthatja be az S3 fájltárolást.
Ha Django webalkalmazást készít, elengedhetetlen a statikus eszközök és a felhasználók által feltöltött médiafájlok hatékony kezelése.
Fejlesztői környezetben a Django kezeli ezeket a fájlokat. A gyártás során azonban érdemes további lehetőségeket felfedezni. Előfordulhat, hogy felhasználói bázisa jelentősen megnő, és sokkal nagyobb fájlokkal, például hang- és videófájlokkal kell foglalkoznia.
Az Amazon Web Services (AWS) Simple Storage Service (S3) tárolója az egyik alternatíva a statikus és médiafájlok tárolására. Az S3 és a Django integrálásával tehermentesítheti a fájlkezelés terheit a szerverről, csökkentheti a terhelést, és gyorsabb, megbízhatóbb eszközszállítást biztosíthat.
1. lépés: Hozzon létre egy AWS-fiókot
Ha nincs AWS-fiókja, keresse meg a AWS webhely, és hozzon létre egy új fiókot.
Az új AWS-fiókok ingyenes hozzáférést kapnak 5 GB S3 szabványos tárhelyhez havonta egy évig.
2. lépés: Hozzon létre egy S3 tárolót a projekthez
- Az AWS-fiók létrehozása után jelentkezzen be, és keressen rá S3 a felső keresősávban, majd válassza ki az első lehetőséget.
- Az első lehetőség kiválasztása után egy új oldal jelenik meg. Kattints a Vödör létrehozása gomb:
- Ezután adjon nevet az S3 vödörnek. A konfiguráció nagy részét alapértelmezettként hagyhatja.
- Görgessen le a A nyilvános hozzáférés beállításainak letiltása ehhez a gyűjtőcsoporthoz részben törölje a pipát a Minden nyilvános hozzáférés letiltása beállítást, és nyugtázza a megjelenő figyelmeztetést.
- Ha elkészült, kattintson a Vödör létrehozása gomb. Átirányítja Önt egy oldalra, amelyen az Ön által létrehozott S3 gyűjtőhelyek listája látható.
3. lépés: Hozzon létre egy IAM-felhasználót az AWS-ben
Az AWS az IAM (Identity and Access Management) nevű szolgáltatást nyújtja. Ez lehetővé teszi, hogy külön fiókot hozzon létre egy adott személy vagy alkalmazás számára, amelynek interakcióba kell lépnie az AWS-szolgáltatásokkal.
Különböző szintű engedélyeket rendelhet az IAM-felhasználókhoz, amelyek olyan személyeket vagy alkalmazásokat képviselnek, amelyek együttműködnek az Ön által létrehozott AWS-szolgáltatásokkal. Az IAM felhasználókkal biztosíthatja, hogy minden felhasználó csak a szükséges erőforrásokhoz férhessen hozzá, semmi többhez.
Biztonsági okokból létre kell hoznia egy IAM-felhasználót a Django-projekthez, hogy kölcsönhatásba lépjen az S3 tárolóval. Kövesse az alábbi lépéseket IAM-felhasználó létrehozásához az AWS-ben:
- A keresősávba írja be ÉN VAGYOK és válassza ki az első lehetőséget. Megjelenik egy új oldal.
- Az IAM oldal bal oldalán válassza ki a lehetőséget Felhasználók, majd kattintson a gombra Felhasználók hozzáadása gomb. Megnyílik egy másik oldal, ahol megadhat néhány információt.
- Kezdje az IAM-felhasználó nevének megadásával, és kattintson a gombra Következő gomb alul: A következő oldalon ki kell választania az IAM-felhasználó jogosultsági szintjeit. Kovesd ezeket a lepeseket:
- Először válassza ki a Szabályzatok közvetlenül csatolása opció a Engedélyezési lehetőségek szakasz.
- Ezt követően határozzon meg egy engedélyházirendet az IAM-felhasználó számára. Ez határozza meg, hogy az IAM felhasználó mit tehet és mit nem. Mivel azt szeretné, hogy a Django alkalmazás letöltse és feltöltse a fájlokat, teljes hozzáférést kell biztosítania az S3 tárolóhoz.
- Ban,-ben Engedélyek házirendje szakaszban kell keresnie S3FullAccess és válassza ki a lehetőséget. Ha elkészült, kattintson a Következő gomb.
- Ezután tekintse át az IAM-felhasználó szabályzatait, és kattintson a gombra Felhasználó létrehozása gombot az IAM-felhasználó létrehozásához.
4. lépés: Hozzon létre hozzáférési kulcsot az IAM-felhasználó számára
Az AWS-ben a hozzáférési kulcs azokra a hitelesítő adatokra utal, amelyek segítségével hitelesítheti és biztonságosan elérheti az AWS-erőforrásokat programozottan. A Django projektnek meg kell adnia ezeket a hitelesítési adatokat az S3 tároló eléréséhez.
A következő lépések segítenek hozzáférési kulcs létrehozásában a projekthez.
- Az IAM-felhasználó létrehozása után figyelmeztető üzenetet kap, amely felszólítja a felhasználó megtekintésére. Alternatív megoldásként megtekintheti a felhasználót a ikonra kattintva Felhasználónév.
- Ezután válassza ki a Biztonsági hitelesítő adatok lapon görgessen lefelé, hogy megtalálja a Hozzáférési kulcsok szakaszt, és válassza ki Hozzáférési kulcs létrehozása.
- Ki kell választania egy használati esetet a hozzáféréshez, hogy az AWS adott esetben alternatív lehetőséget tudjon ajánlani. Ez nincs hatással a hozzáférési kulcsára. Nyugodtan válasszon olyan lehetőséget, mint pl Harmadik fél szolgáltatása vagy Helyi kód és nyugtázza a felbukkanó figyelmeztetést. Ha elkészült, kattintson a Következő gomb.
- A következő oldalon írja be a hozzáférési kulcs leíró címkéjét, és kattintson a gombra Hozzáférési kulcs létrehozása gomb.
- A hozzáférési kulcs létrehozása után átmásolhatja hitelesítő adatait, vagy letöltheti azokat CSV-fájlként. Akárhogy is, ügyeljen arra, hogy ezeket az adatokat biztonságban és biztonságban tartsa.
5. lépés: Konfigurálja a Django Projectet az S3 Buckethez
Az S3 tároló Django projekthez való használatához telepítse az alábbi csomagokat:
- django-tárolók: Ez a csomag segít tárhely-háttérrendszer meghatározásában fájljai számára.
- boto3: Ez a csomag az AWS Szoftverfejlesztő készlet (SDK) hogy segítse Python-projektjét az AWS-sel.
Ezeket a csomagokat telepítheti a sajátjába Python virtuális környezet a Python Pip csomagkezelőjével a következő parancs beírásával a terminálba:
pip install django-storages boto3
Miután sikeresen telepítette ezeket a csomagokat, nyissa meg a settings.py fájlba és hozzáadni boto3 a telepített alkalmazásokhoz.
Az utolsó teendő az, hogy konfigurálja a Django projektet az AWS S3 tároló használatára. Íme a használandó általános konfiguráció:
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'
Illessze be a fenti konfigurációt settings.py fájlba, és ennek megfelelően cserélje ki az értékeket. Cserélje ki AWS_ACCESS_KEY_ID és AWS_SECRET_ACCESS_KEY a korábban másolt vagy letöltött hozzáférési kulccsal és titkos hozzáférési kulccsal. Ezenkívül módosítania kell a AWS_STORAGE_BUCKET_NAME és AWS_S3_REGION_NAME az S3 tárolóedény és a régió nevére.
A régió nevét úgy kaphatja meg, hogy navigál az S3 tárolóhoz, és másolja az utolsó értékeket a AWS régió oszlop.
6. lépés: Tesztelje az AWS-konfigurációt
A fenti lépések elvégzése után készen kell állnia az alkalmazás tesztelésére fájlok feltöltésével. A következő kódminták közvetlenül az adminisztrációs panelről töltik fel a fájlokat, de más helyről is feltöltheti a sajátját.
Kontextusként használhat egy modellt, amely így néz ki:
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
Győződjön meg arról, hogy végrehajtja a szükséges műveleteket, például az áttelepítést, hozzáadja az adminisztrációs panelhez, nézetet hoz létre és egyéb, a projekthez szükséges dolgokat. Győződjön meg róla, hogy gyakorol Django MVT elve.
Ha végzett, navigáljon az adminisztrációs panelre vagy a fájlfeltöltéshez létrehozott űrlapra, és töltsön fel egy képfájlt.
Navigáljon a fő webhelyére, és ellenőrizze, hogy ott van-e a kép. Ha igen, kattintson a jobb gombbal a képre, és válassza ki a Kép megnyitása új lapon választási lehetőség. A képet tartalmazó új lapon észre fogja venni, hogy a címsor a korábban létrehozott S3 tárolóra hivatkozik:
Egy másik módja annak, hogy megbizonyosodjon arról, hogy a konfiguráció működik, ha az AWS-konzolon a tárolóhoz navigál. A képedet ott találod:
7. lépés: Gyűjtse össze a statikus fájlokat az S3 tárolójába
Eddig képes volt médiafájlokat feltölteni az S3 tárolójába; most fel kell töltenie statikus fájljait.
Ehhez adja hozzá ezeket a konfigurációkat a sajátjához settings.py fájl:
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
AWS_LOCATION = 'static'
Ezt követően nyissa ki a saját Parancssori interfész (CLI) és futtasd ezt a parancsot:
python manage.py collectstatic --noinput
Annak ellenőrzésére, hogy minden működik, nyissa ki az S3 tárolót az AWS konzolon. Látni fog egy mappát, melynek neve statikus.
Használja az AWS S3 Bucketet sokkal többért
Az AWS S3 kanalak lehetőségei óriásiak! Meg kell ismerkednie vele, és meg kell tanulnia az S3 használatát más célokra, például statikus webalkalmazások tárolására.
Az S3 vödrök helyes használatának ismerete sok időt takarít meg, és segít egy jobb termék vagy megoldás felépítésében. De azt is tudnia kell, hogy az S3 nem biztos, hogy minden esetre megfelelő, ezért használat előtt mérlegelje a projekt követelményeit.