S tem vodnikom po korakih se naučite, kako nastaviti shrambo datotek S3.

Če gradite spletno aplikacijo Django, je bistveno, da učinkovito obravnavate statična sredstva in predstavnostne datoteke, ki jih naložijo uporabniki.

V razvojnem okolju Django upravlja te datoteke. V proizvodnji pa boste želeli raziskati nadaljnje možnosti. Vaša baza uporabnikov se lahko znatno poveča in morda imate opravka z veliko večjimi datotekami, kot sta zvok in video.

Vedro Amazon Web Services (AWS) Simple Storage Service (S3) je ena od alternativ za gostovanje statičnih in medijskih datotek. Z integracijo S3 z Django lahko razbremenite breme upravljanja datotek s strežnika, zmanjšate obremenitev in zagotovite hitrejšo in zanesljivejšo dostavo sredstev.

1. korak: Ustvarite račun AWS

Če nimate računa AWS, se pomaknite do spletno mesto AWSin ustvarite nov račun.

Novi računi AWS imajo brezplačen dostop do 5 GB standardnega prostora za shranjevanje S3 vsak mesec eno leto.

2. korak: Ustvarite vedro S3 za svoj projekt

instagram viewer
  1. Ko ustvarite račun AWS, se prijavite in poiščite S3 v iskalni vrstici na vrhu, nato izberite prvo možnost.
  2. Ko izberete prvo možnost, boste videli novo stran. Kliknite na Ustvari vedro gumb:
  3. Nato vnesite ime za vedro S3. Večino konfiguracije lahko pustite privzeto.
  4. Pomaknite se navzdol do Blokiraj nastavitve javnega dostopa za to vedro počistite polje Blokiraj ves javni dostop nastavitev in potrdite opozorilo, ki se prikaže.
  5. Ko končate, kliknite Ustvari vedro gumb. Preusmerjen vas bo na stran, ki prikazuje seznam veder S3, ki ste jih ustvarili.

3. korak: Ustvarite uporabnika IAM na AWS

AWS ponuja storitev, imenovano IAM (Identity and Access Management). To vam omogoča, da ustvarite ločen račun za določeno osebo ali aplikacijo, ki mora komunicirati s storitvami AWS.

Uporabnikom IAM lahko dodelite različne ravni dovoljenj, ki predstavljajo posameznike ali aplikacije, ki komunicirajo s storitvami AWS, ki ste jih ustvarili. Z uporabniki IAM lahko zagotovite, da ima vsak uporabnik dostop samo do virov, ki jih potrebuje, in nič več.

Iz varnostnih razlogov bi morali ustvariti uporabnika IAM za vaš projekt Django za interakcijo z vašim vedro S3. Za ustvarjanje uporabnika IAM v AWS sledite tem korakom:

  1. V iskalno vrstico vnesite JAZ SEM in izberite prvo možnost. Pojavila se bo nova stran.
  2. Na levi strani strani IAM izberite Uporabniki, nato nadaljujte s klikom na Dodajte uporabnike gumb. Odprla se bo druga stran za vnos nekaterih informacij.
  3. Začnite tako, da vnesete ime za uporabnika IAM in kliknete Naslednji gumb na dnu: Na naslednji strani morate izbrati ravni dovoljenj za uporabnika IAM. Sledite tem korakom:
    1. Najprej izberite Politike priložite neposredno možnost iz Možnosti dovoljenj razdelek.
    2. Nato določite politiko dovoljenj za svojega uporabnika IAM. To bo določilo, kaj lahko uporabnik IAM naredi in kaj ne. Ker želite, da vaša aplikacija Django prenaša in nalaga datoteke, ji morate omogočiti popoln dostop do vedra S3.
    3. V Politike dovoljenj razdelek, bi morali iskati S3FullAccess in izberite možnost. Ko končate, kliknite Naslednji gumb.
  4. Nato preglejte pravilnike za uporabnika IAM in kliknite Ustvari uporabnika gumb za ustvarjanje uporabnika IAM.

4. korak: Ustvarite ključ za dostop za svojega uporabnika IAM

V AWS se ključ za dostop nanaša na poverilnice, ki jih lahko uporabite za preverjanje pristnosti in programski varen dostop do virov AWS. Vaš projekt Django mora zagotoviti te poverilnice za dostop do vašega vedra S3.

Naslednji koraki vam bodo pomagali ustvariti ključ za dostop do vašega projekta.

  1. Ko ustvarite svojega uporabnika IAM, boste prejeli opozorilno sporočilo, ki vas pozove, da si ogledate uporabnika. Uporabnika si lahko ogledate tudi s klikom na uporabniško ime.
  2. Nato izberite Varnostne poverilnice se pomaknite navzdol, da poiščete Ključi za dostop in izberite Ustvari ključ za dostop.
  3. Za svoj dostop boste morali izbrati primer uporabe, tako da lahko AWS priporoči alternativno možnost, kjer je primerno. Ne vpliva na vaš dostopni ključ. Prosto izberite možnost, kot je npr Storitev tretjih oseb oz Lokalna koda in potrdite opozorilo, ki se prikaže. Ko končate, kliknite Naslednji gumb.
  4. Na naslednji strani vnesite opisno oznako za ključ za dostop in kliknite Ustvari ključ za dostop gumb.
  5. Ko ustvarite ključ za dostop, lahko svoje poverilnice kopirate ali prenesete kot datoteko CSV. Kakor koli že, poskrbite, da bodo ti podatki varni in zaščiteni.

5. korak: Konfigurirajte svoj projekt Django za vedro S3

Če želite uporabiti svoje vedro S3 s projektom Django, namestite te pakete:

  • django-shrambe: Ta paket vam bo pomagal določiti zaledje za shranjevanje vaših datotek.
  • boto3: Ta paket je AWS Komplet za razvoj programske opreme (SDK) za pomoč vašemu projektu Python pri interakciji z AWS.

Te pakete lahko namestite v svoj Virtualno okolje Python s Pythonovim upraviteljem paketov Pip tako, da v svoj terminal vnesete ta ukaz:

pip install django-storages boto3

Ko uspešno namestite te pakete, odprite svoj nastavitve.py datoteko in dodajte boto3 na nameščene aplikacije.

Zadnja stvar, ki jo morate narediti, je konfiguracija vašega projekta Django za uporabo vedra AWS S3. Tukaj je splošna konfiguracija za uporabo:

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'

Prilepite zgornjo konfiguracijo v svoj nastavitve.py datoteko in ustrezno zamenjajte vrednosti. Zamenjajte svojega AWS_ACCESS_KEY_ID in AWS_SECRET_ACCESS_KEY s ključem za dostop in skrivnim ključem za dostop, ki ste ga prej kopirali ali prenesli. Prav tako bi morali spremeniti AWS_STORAGE_BUCKET_NAME in AWS_S3_REGION_NAME na imena vašega vedra S3 in regije.

Ime regije lahko dobite tako, da se pomaknete do vedra S3 in kopirate zadnje vrednosti iz regija AWS stolpec.

6. korak: Preizkusite svojo konfiguracijo AWS

Ko so zgornji koraki končani, bi morali biti pripravljeni preizkusiti svojo aplikacijo z nalaganjem datotek. Naslednji vzorci kode bodo naložili datoteke neposredno iz skrbniške plošče, vi pa lahko svojo naložite z drugega mesta.

Za kontekst lahko imate model, ki je videti takole:

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

Prepričajte se, da izvajate potrebne operacije, kot so selitve, dodajanje v skrbniško ploščo, ustvarjanje pogleda in druge stvari, potrebne za vaš projekt. Prepričajte se, da vadite Djangov princip MVT.

Ko končate, se pomaknite do skrbniške plošče ali katerega koli obrazca, ki ste ga ustvarili za nalaganje datotek, in naložite slikovno datoteko.

Pomaknite se na glavno spletno mesto in potrdite, da je slika tam. Če je, z desno miškino tipko kliknite sliko in izberite Odpri sliko v novem zavihku možnost. V novem zavihku s sliko boste opazili, da se naslovna vrstica sklicuje na vedro S3, ki ste ga ustvarili prej:

Drug način za potrditev, da vaša konfiguracija deluje, je navigacija do vašega vedra na konzoli AWS. Tam boste našli svojo sliko:

7. korak: Zberite statične datoteke v vedro S3

Doslej ste lahko nalagali medijske datoteke v svoje vedro S3; zdaj morate naložiti svoje statične datoteke.

Če želite to narediti, dodajte te konfiguracije v svoj nastavitve.py mapa:

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

Po tem odprite svoj Vmesnik ukazne vrstice (CLI) in zaženi ta ukaz:

python manage.py collectstatic --noinput

Če želite potrditi, da vse deluje, odprite vedro S3 v konzoli AWS. Videli boste mapo z imenom statična.

Uporabite AWS S3 Bucket za veliko več

Možnosti žlic AWS S3 so ogromne! Morali bi se seznaniti z njim in se naučiti uporabljati S3 za druge namene, kot je gostovanje statične spletne aplikacije.

Poznavanje pravilne uporabe veder S3 vam bo prihranilo veliko časa in vam pomagalo zgraditi boljši izdelek ali rešitev. Zavedati pa se morate tudi, da S3 morda ni primeren za vse primere, zato pred uporabo upoštevajte zahteve vašega projekta.