Aflați cum să vă configurați cu stocarea fișierelor S3 folosind acest ghid pas cu pas.

Dacă construiți o aplicație web Django, este esențial să gestionați eficient activele statice și fișierele media încărcate de utilizator.

Într-un mediu de dezvoltare, Django gestionează aceste fișiere. În producție, totuși, veți dori să explorați opțiuni suplimentare. Baza dvs. de utilizatori poate crește semnificativ și este posibil să aveți de-a face cu fișiere mult mai mari, cum ar fi audio și video.

Bucket-ul Amazon Web Services (AWS) Simple Storage Service (S3) este o alternativă pentru găzduirea fișierelor statice și media. Prin integrarea S3 cu Django, puteți descărca sarcina gestionării fișierelor de pe serverul dvs., puteți reduce încărcarea și puteți asigura livrarea mai rapidă și mai fiabilă a activelor.

Pasul 1: creați un cont AWS

Dacă nu aveți un cont AWS, navigați la site-ul AWSși creați un cont nou.

Noile conturi AWS au acces gratuit la 5 GB de stocare standard S3 în fiecare lună timp de un an.

instagram viewer

Pasul 2: Creați o găleată S3 pentru proiectul dvs

  1. După ce v-ați creat contul AWS, conectați-vă și căutați S3 în bara de căutare din partea de sus, apoi selectați prima opțiune.
  2. După selectarea primei opțiuni, veți vedea o pagină nouă. Apasă pe Creați o găleată buton:
  3. Apoi, furnizați un nume pentru bucket-ul dvs. S3. Puteți lăsa cea mai mare parte a configurației ca implicită.
  4. Derulați în jos la Blocați setările de acces public pentru această grupă secțiunea, debifați Blocați tot accesul public setare și confirmați avertismentul care apare.
  5. După ce ați terminat, faceți clic pe Creați o găleată buton. Vă va redirecționa către o pagină care arată o listă a compartimentelor S3 pe care le-ați creat.

Pasul 3: Creați un utilizator IAM pe AWS

AWS oferă un serviciu numit IAM (Identity and Access Management). Acest lucru vă permite să creați un cont separat pentru o anumită persoană sau aplicație care trebuie să interacționeze cu serviciile AWS.

Puteți atribui diferite niveluri de permisiuni utilizatorilor IAM, reprezentând persoane sau aplicații care interacționează cu serviciile AWS pe care le-ați creat. Cu utilizatorii IAM, vă puteți asigura că fiecare utilizator are acces doar la resursele de care au nevoie și nimic mai mult.

Din motive de securitate, ar trebui să creați un utilizator IAM pentru proiectul dvs. Django pentru a interacționa cu compartimentul dvs. S3. Urmați acești pași pentru a crea un utilizator IAM pe AWS:

  1. În bara de căutare, tastați EU SUNT și selectați prima opțiune. Va apărea o nouă pagină.
  2. În partea stângă a paginii IAM, selectați Utilizatori, apoi faceți clic pe Adăugați utilizatori buton. Se va deschide o altă pagină pentru a completa câteva informații.
  3. Începeți prin a introduce un nume pentru utilizatorul IAM și faceți clic pe Următorul butonul din partea de jos: Pe pagina următoare, trebuie să selectați nivelurile de permisiune pentru utilizatorul IAM. Urmați acești pași:
    1. Mai întâi, selectați Atașați direct politicile opțiunea din Opțiuni de permisiuni secțiune.
    2. Apoi, definiți o politică de permisiuni pentru utilizatorul dvs. IAM. Aceasta va determina ce poate și ce nu poate face utilizatorul IAM. Deoarece doriți ca aplicația dvs. Django să descarce și să încarce fișiere, ar trebui să îi oferiți acces complet la compartimentul S3.
    3. În Politici de permisiuni secțiunea, ar trebui să căutați S3FullAccess și selectați opțiunea. După ce ați terminat, faceți clic pe Următorul buton.
  4. Apoi, examinați politicile pentru utilizatorul IAM și faceți clic pe Creaza utilizator butonul pentru a vă crea utilizatorul IAM.

Pasul 4: creați o cheie de acces pentru utilizatorul dvs. IAM

În AWS, o cheie de acces se referă la acreditările pe care le puteți utiliza pentru a autentifica și accesa în siguranță resursele AWS în mod programatic. Proiectul dvs. Django trebuie să furnizeze aceste acreditări pentru a vă accesa compartimentul S3.

Următorii pași vă vor ajuta să generați o cheie de acces pentru proiectul dvs.

  1. După ce vă creați utilizatorul IAM, veți primi un mesaj de alertă care vă solicită să vedeți utilizatorul. Alternativ, puteți vizualiza utilizatorul făcând clic pe Nume de utilizator.
  2. Apoi, selectați Acreditări de securitate fila, derulați în jos pentru a găsi Chei de acces secțiune și selectați Creați cheia de acces.
  3. Va trebui să selectați un caz de utilizare pentru accesul dvs., astfel încât AWS să vă poată recomanda o opțiune alternativă, acolo unde este cazul. Nu vă afectează cheia de acces. Simțiți-vă liber să selectați o opțiune precum Serviciu terță parte sau Cod local și confirmați avertismentul care apare. După ce ați terminat, faceți clic pe Următorul buton.
  4. Pe pagina următoare, introduceți o etichetă de descriere pentru cheia dvs. de acces și faceți clic pe Creați cheia de acces buton.
  5. După crearea cheii de acces, puteți fie să vă copiați acreditările, fie să le descărcați ca fișier CSV. În orice caz, asigurați-vă că păstrați aceste date în siguranță.

Pasul 5: Configurați proiectul Django pentru S3 Bucket

Pentru a utiliza bucket-ul S3 cu un proiect Django, instalați aceste pachete:

  • django-stocuri: Acest pachet vă va ajuta să definiți un backend de stocare pentru fișierele dvs.
  • boto3: Acest pachet este AWS Kit de dezvoltare software (SDK) pentru a vă ajuta proiectul Python să interacționeze cu AWS.

Puteți instala aceste pachete în dvs Mediul virtual Python cu managerul de pachete Pip al lui Python, tastând această comandă în terminalul dvs.:

pip install django-storages boto3

După ce ați instalat cu succes aceste pachete, deschideți setări.py fisier si adauga boto3 la aplicațiile instalate.

Ultimul lucru de făcut este să vă configurați proiectul Django pentru a utiliza bucket-ul AWS S3. Iată configurația generală de utilizat:

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'

Lipiți configurația de mai sus în dvs setări.py fișier și înlocuiți valorile corespunzător. Înlocuiește-ți AWS_ACCESS_KEY_ID și AWS_SECRET_ACCESS_KEY cu cheia de acces și cheia de acces secretă pe care le-ați copiat sau descărcat mai devreme. De asemenea, ar trebui să schimbați AWS_STORAGE_BUCKET_NAME și AWS_S3_REGION_NAME la numele găleții și regiunii dvs. S3.

Puteți obține numele regiunii navigând la compartimentul dvs. S3 și copiend ultimele valori din Regiunea AWS coloană.

Pasul 6: Testați configurația AWS

După finalizarea pașilor de mai sus, ar trebui să fiți gata să testați aplicația prin încărcarea fișierelor. Următoarele exemple de cod vor încărca fișiere direct din panoul de administrare, dar sunteți liber să le încărcați pe ale dvs. din alt loc.

Pentru context, puteți avea un model care arată astfel:

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

Asigurați-vă că efectuați operațiunile necesare, cum ar fi migrarea, adăugarea acestuia la panoul de administrare, crearea unei vizualizări și alte lucruri necesare pentru proiectul dvs. Asigurați-vă că exersați Principiul MVT al lui Django.

După ce ați terminat, navigați la panoul de administrare sau la orice formă pe care ați creat-o pentru încărcarea fișierelor și încărcați un fișier imagine.

Navigați la site-ul dvs. principal și confirmați că imaginea este acolo. Dacă este, faceți clic dreapta pe imagine și selectați Deschide imaginea într-o filă nouă opțiune. În noua filă care conține imaginea, veți observa că bara de adrese face referire la compartimentul S3 pe care l-ați creat mai devreme:

O altă modalitate de a confirma că configurația funcționează este să navighezi la compartimentul tău pe consola AWS. Acolo vei găsi imaginea ta:

Pasul 7: Colectați fișiere statice în găleată S3

Până acum, ați reușit să încărcați fișiere media în găleata S3; acum, trebuie să încărcați fișierele statice.

Pentru a face acest lucru, adăugați aceste configurații la dvs setări.py fişier:

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

După aceea, deschide-ți Interfață de linie de comandă (CLI) și rulați această comandă:

python manage.py collectstatic --noinput

Pentru a confirma că totul funcționează, deschideți compartimentul S3 în consola AWS. Veți vedea un folder numit static.

Utilizați AWS S3 Bucket pentru mult mai mult

Posibilitățile găleților AWS S3 sunt enorme! Ar trebui să vă familiarizați cu acesta și să învățați cum să utilizați S3 în alte scopuri, cum ar fi găzduirea unei aplicații web statice.

Știind cum să utilizați corect gălețile S3 vă va economisi mult timp și vă va ajuta să construiți un produs sau o soluție mai bună. Dar ar trebui să știți și că S3 ar putea să nu fie potrivit pentru fiecare caz, așa că luați în considerare cerințele proiectului înainte de a-l utiliza.