Naučite kako postaviti S3 pohranu datoteka pomoću ovog vodiča korak po korak.

Ako gradite Django web aplikaciju, važno je učinkovito rukovati statičkim materijalima i medijskim datotekama koje su prenijeli korisnici.

U razvojnom okruženju, Django upravlja tim datotekama. Međutim, u proizvodnji ćete htjeti istražiti daljnje mogućnosti. Vaša korisnička baza mogla bi značajno narasti i možda imate posla s puno većim datotekama, poput audio i video zapisa.

Amazon Web Services (AWS) Simple Storage Service (S3) Bucket jedna je od alternativa za smještaj statičkih i medijskih datoteka. Integracijom S3 s Djangom možete rasteretiti teret upravljanja datotekama s vašeg poslužitelja, smanjiti opterećenje i osigurati bržu i pouzdaniju isporuku sredstava.

Korak 1: Kreirajte AWS račun

Ako nemate AWS račun, idite na AWS stranicai kreirajte novi račun.

Novi AWS računi imaju besplatan pristup 5 GB S3 standardne pohrane svaki mjesec tijekom godine dana.

Korak 2: Izradite S3 kantu za svoj projekt

  1. Nakon što stvorite svoj AWS račun, prijavite se i potražite
    instagram viewer
    S3 u traci za pretraživanje na vrhu, zatim odaberite prvu opciju.
  2. Nakon što odaberete prvu opciju, vidjet ćete novu stranicu. Kliknite na Stvori kantu dugme:
  3. Zatim navedite naziv za svoju S3 kantu. Većinu konfiguracije možete ostaviti kao zadanu.
  4. Pomaknite se prema dolje do Postavke blokiranja javnog pristupa za ovu kantu odjeljak, poništite odabir Blokiraj sav javni pristup postavku i potvrdite upozorenje koje se pojavljuje.
  5. Kada završite, kliknite Stvori kantu dugme. Preusmjerit će vas na stranicu koja prikazuje popis S3 spremnika koje ste izradili.

Korak 3: Stvorite IAM korisnika na AWS-u

AWS pruža uslugu pod nazivom IAM (Identity and Access Management). To vam omogućuje stvaranje zasebnog računa za određenu osobu ili aplikaciju koja treba komunicirati s AWS uslugama.

Možete dodijeliti različite razine dopuštenja IAM korisnicima, predstavljajući pojedince ili aplikacije koje su u interakciji s AWS uslugama koje ste izradili. S IAM korisnicima možete osigurati da svaki korisnik ima pristup samo onim resursima koji su mu potrebni i ništa više.

Iz sigurnosnih razloga trebali biste stvoriti IAM korisnika za svoj Django projekt za interakciju s vašim S3 spremnikom. Slijedite ove korake za stvaranje IAM korisnika na AWS-u:

  1. U traku za pretraživanje upišite JA SAM i odaberite prvu opciju. Pojavit će se nova stranica.
  2. Na lijevoj strani IAM stranice odaberite Korisnici, zatim kliknite na Dodajte korisnike dugme. Otvorit će se druga stranica za popunjavanje nekih podataka.
  3. Započnite unosom imena za IAM korisnika i klikom na Sljedeći gumb na dnu: Na sljedećoj stranici morate odabrati razine dopuštenja za IAM korisnika. Prati ove korake:
    1. Najprije odaberite Izravno priložite pravila opcija iz Mogućnosti dopuštenja odjeljak.
    2. Zatim definirajte politiku dopuštenja za svog IAM korisnika. Ovo će odrediti što IAM korisnik može, a što ne može učiniti. Budući da želite da vaša aplikacija Django preuzima i učitava datoteke, trebali biste joj dati puni pristup S3 spremniku.
    3. u Pravila dopuštenja odjeljak, trebali biste potražiti S3Puni pristup i odaberite opciju. Kada završite, kliknite Sljedeći dugme.
  4. Zatim pregledajte pravila za IAM korisnika i kliknite Stvori korisnika gumb za stvaranje vašeg IAM korisnika.

Korak 4: Stvorite pristupni ključ za svog IAM korisnika

U AWS-u pristupni ključ odnosi se na vjerodajnice koje možete koristiti za autentifikaciju i siguran programski pristup resursima AWS-a. Vaš Django projekt mora pružiti ove vjerodajnice za pristup vašem S3 spremniku.

Sljedeći koraci pomoći će vam da generirate pristupni ključ za svoj projekt.

  1. Nakon što stvorite svog IAM korisnika, dobit ćete poruku upozorenja koja od vas traži da pogledate korisnika. Alternativno, možete vidjeti korisnika klikom na Korisničko ime.
  2. Zatim odaberite Sigurnosne vjerodajnice karticu, pomaknite se prema dolje da pronađete Pristupni ključevi odjeljak i odaberite Stvorite pristupni ključ.
  3. Morat ćete odabrati slučaj korištenja za svoj pristup, tako da AWS može preporučiti alternativnu opciju gdje je to prikladno. To ne utječe na vaš pristupni ključ. Slobodno odaberite opciju kao što je Usluga treće strane ili Lokalni kod i potvrdite upozorenje koje se pojavljuje. Kada završite, kliknite Sljedeći dugme.
  4. Na sljedećoj stranici unesite oznaku opisa za pristupni ključ i kliknite Stvorite pristupni ključ dugme.
  5. Nakon što izradite pristupni ključ, možete kopirati svoje vjerodajnice ili ih preuzeti kao CSV datoteku. U svakom slučaju, pobrinite se da su ti podaci sigurni i sigurni.

Korak 5: Konfigurirajte svoj Django projekt za S3 kantu

Da biste koristili svoju S3 kantu s Django projektom, instalirajte ove pakete:

  • django-skladišta: Ovaj paket će vam pomoći definirati pozadinu za pohranu vaših datoteka.
  • boto3: Ovaj paket je AWS Komplet za razvoj softvera (SDK) pomoći vašem Python projektu u interakciji s AWS-om.

Ove pakete možete instalirati u svoj Python virtualno okruženje s Pythonovim upraviteljem paketa Pip upisivanjem ove naredbe u svoj terminal:

pip install django-storages boto3

Nakon što ste uspješno instalirali ove pakete, otvorite svoj postavke.py datoteku i dodajte boto3 na instalirane aplikacije.

Zadnje što trebate učiniti je konfigurirati svoj Django projekt za korištenje AWS S3 spremnika. Ovo je opća konfiguracija za korištenje:

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'

Zalijepite gornju konfiguraciju u svoj postavke.py datoteku i zamijenite vrijednosti u skladu s tim. Zamijenite svoju AWS_ACCESS_KEY_ID i AWS_SECRET_ACCESS_KEY s pristupnim ključem i tajnim pristupnim ključem koji ste prethodno kopirali ili preuzeli. Također biste trebali promijeniti AWS_STORAGE_BUCKET_NAME i AWS_S3_REGION_NAME na nazive vaše S3 kante i regije.

Naziv regije možete dobiti navigacijom do svog S3 spremnika i kopiranjem zadnjih vrijednosti iz AWS regija stupac.

Korak 6: Testirajte svoju AWS konfiguraciju

Nakon dovršetka gornjih koraka trebali biste biti spremni testirati svoju aplikaciju učitavanjem datoteka. Sljedeći uzorci koda prenijet će datoteke izravno s administratorske ploče, ali slobodno možete prenijeti svoje s drugog mjesta.

Za kontekst, možete imati model koji izgleda ovako:

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

Obavezno izvršite potrebne operacije kao što su migracije, dodavanje na administrativnu ploču, stvaranje prikaza i druge stvari potrebne za vaš projekt. Pobrinite se da vježbate Djangov MVT princip.

Kada završite, idite na svoju administrativnu ploču ili bilo koji obrazac koji ste kreirali za učitavanje datoteke i prenesite slikovnu datoteku.

Idite na svoje glavno mjesto i potvrdite da je slika tamo. Ako jest, desnom tipkom miša kliknite sliku i odaberite Otvori sliku u novoj kartici opcija. U novoj kartici koja sadrži sliku, primijetit ćete da adresna traka upućuje na S3 kantu koju ste ranije stvorili:

Drugi način da potvrdite da vaša konfiguracija radi je navigacijom do vaše kante na AWS konzoli. Tamo ćete pronaći svoju sliku:

Korak 7: Prikupite statičke datoteke u svoju S3 kantu

Do sada ste mogli učitavati medijske datoteke u svoju S3 kantu; sada morate prenijeti svoje statičke datoteke.

Da biste to učinili, dodajte ove konfiguracije u svoj postavke.py datoteka:

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

Nakon toga otvorite svoj Sučelje naredbenog retka (CLI) i pokrenite ovu naredbu:

python manage.py collectstatic --noinput

Kako biste potvrdili da sve radi, otvorite svoju S3 kantu u AWS konzoli. Vidjet ćete mapu pod nazivom statički.

Koristite AWS S3 Bucket za mnogo više

Mogućnosti AWS S3 kanti su ogromne! Trebali biste se upoznati s njim i naučiti kako koristiti S3 u druge svrhe, kao što je hosting statične web aplikacije.

Znanje kako pravilno koristiti S3 kante uštedjet će vam mnogo vremena i pomoći vam da izgradite bolji proizvod ili rješenje. Ali također biste trebali biti svjesni da S3 možda neće biti prikladan za svaki slučaj, stoga razmotrite zahtjeve vašeg projekta prije nego što ga upotrijebite.