Selle samm-sammulise juhendi abil saate teada, kuidas S3-failide salvestusruumi seadistada.

Kui loote Django veebirakendust, on oluline staatilisi varasid ja kasutajate üleslaaditud meediumifaile tõhusalt käsitleda.

Arenduskeskkonnas haldab Django neid faile. Tootmises peaksite siiski uurima täiendavaid võimalusi. Teie kasutajaskond võib märkimisväärselt kasvada ja teil võib olla tegemist palju suuremate failidega, nagu heli ja video.

Amazoni veebiteenuste (AWS) lihtsa salvestusteenuse (S3) ämber on üks alternatiiv staatiliste ja meediumifailide majutamiseks. Integreerides S3 Djangoga, saate oma serverilt failihalduse koormuse maha laadida, vähendada koormust ja tagada varade kiirem ja usaldusväärsem kohaletoimetamine.

1. samm: looge AWS-i konto

Kui teil pole AWS-i kontot, liikuge lehele AWS-i saitja looge uus konto.

Uutel AWS-i kontodel on aasta jooksul tasuta juurdepääs 5 GB standardsele S3 salvestusruumile iga kuu.

2. samm: looge oma projekti jaoks S3 ämber

  1. Pärast AWS-i konto loomist logige sisse ja otsige S3 ülaosas otsinguribal, seejärel valige esimene valik.
  2. instagram viewer
  3. Pärast esimese valiku valimist näete uut lehte. Klõpsake nuppu Loo ämber nupp:
  4. Järgmisena andke oma S3-ämbrile nimi. Suurema osa konfiguratsioonist saate jätta vaikeseadeks.
  5. Kerige alla jaotiseni Blokeeri selle ämbri avaliku juurdepääsu seaded tühjendage märkeruut Blokeeri kogu avalik juurdepääs seadistus ja kinnitage kuvatav hoiatus.
  6. Kui olete lõpetanud, klõpsake nuppu Loo ämber nuppu. See suunab teid lehele, kus kuvatakse teie loodud S3-ämbrite loend.

3. samm: looge AWS-is IAM-kasutaja

AWS pakub teenust nimega IAM (Identity and Access Management). See võimaldab teil luua eraldi konto konkreetsele inimesele või rakendusele, kes peab AWS-i teenustega suhtlema.

Saate määrata IAM-i kasutajatele erineva tasemega õigusi, mis esindavad isikuid või rakendusi, mis suhtlevad teie loodud AWS-teenustega. IAM-i kasutajatega saate tagada, et igal kasutajal on juurdepääs ainult neile vajalikele ressurssidele ja ei midagi enamat.

Turvalisuse huvides peaksite oma Django projekti jaoks looma IAM-i kasutaja, et teie S3 ämbriga suhelda. AWS-is IAM-kasutaja loomiseks järgige neid samme.

  1. Tippige otsinguribale MA OLEN ja valige esimene valik. Ilmub uus leht.
  2. Valige IAM-i lehe vasakus servas Kasutajad, seejärel klõpsake nuppu Lisa kasutajaid nuppu. See avab mõne teabe täitmiseks teise lehe.
  3. Alustuseks sisestage IAM-i kasutaja nimi ja klõpsake nuppu Edasi nupp allosas: Järgmisel lehel peate valima IAM-i kasutaja õiguste tasemed. Järgige neid samme.
    1. Esiteks valige Manustage poliitikad otse valik alates Lubade valikud osa.
    2. Järgmisena määrake oma IAM-i kasutaja jaoks loapoliitika. See määrab, mida IAM-i kasutaja saab teha ja mida mitte. Kuna soovite, et teie Django rakendus faile alla laadiks ja üles laadiks, peaksite andma sellele täieliku juurdepääsu S3 ämbrile.
    3. Aastal Lubade eeskirjad jaotist, peaksite otsima S3FullAccess ja valige suvand. Kui olete lõpetanud, klõpsake nuppu Edasi nuppu.
  4. Järgmisena vaadake üle IAM-i kasutaja eeskirjad ja klõpsake nuppu Loo kasutaja nuppu, et luua oma IAM-i kasutaja.

4. samm: looge oma IAM-i kasutaja jaoks pääsuvõti

AWS-is viitab pääsuvõti mandaatidele, mida saate kasutada AWS-i ressurssidele programmiliselt autentimiseks ja neile turvaliseks juurdepääsuks. Teie Django projekt peab andma need mandaadid teie S3 ämbrile juurdepääsuks.

Järgmised sammud aitavad teil luua oma projekti jaoks juurdepääsuvõtme.

  1. Pärast IAM-i kasutaja loomist saate hoiatusteate, mis palub teil kasutajat vaadata. Teise võimalusena saate kasutajat vaadata, klõpsates nuppu Kasutajanimi.
  2. Järgmisena valige Turvavolitused kerige alla, et leida Juurdepääsuklahvid jaotis ja valige Loo juurdepääsuvõti.
  3. Peate oma juurdepääsu jaoks valima kasutusjuhtumi, et AWS saaks vajaduse korral soovitada alternatiivset valikut. See ei mõjuta teie juurdepääsuvõtit. Valige julgelt selline valik nagu Kolmanda osapoole teenus või Kohalik kood ja tunnistage ilmuvat hoiatust. Kui olete lõpetanud, klõpsake nuppu Edasi nuppu.
  4. Sisestage järgmisel lehel oma juurdepääsuvõtme kirjeldusmärgend ja klõpsake nuppu Loo juurdepääsuvõti nuppu.
  5. Pärast juurdepääsuvõtme loomist saate oma mandaadid kopeerida või need CSV-failina alla laadida. Igal juhul veenduge, et need andmed oleksid turvalised.

5. samm: konfigureerige oma Django projekt S3 ämbri jaoks

S3 ämbri kasutamiseks Django projektiga installige järgmised paketid:

  • django-salvestused: see pakett aitab teil määrata failidele salvestusruumi taustaprogrammi.
  • boto3: See pakett on AWS Tarkvaraarenduskomplekt (SDK) et aidata teie Pythoni projektil AWS-iga suhelda.

Saate need paketid oma seadmesse installida Pythoni virtuaalne keskkond Pythoni Pip paketihalduriga, tippides terminali selle käsu:

pip install django-storages boto3

Kui olete need paketid edukalt installinud, avage oma settings.py faili ja lisa boto3 installitud rakendustele.

Viimane asi, mida teha, on konfigureerida oma Django projekt kasutama AWS S3 ämbrit. Siin on üldine kasutatav konfiguratsioon:

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'

Kleepige ülaltoodud konfiguratsioon oma settings.py faili ja asendage väärtused vastavalt. Asenda oma AWS_ACCESS_KEY_ID ja AWS_SECRET_ACCESS_KEY pääsuvõtme ja salajase juurdepääsuvõtmega, mille olete varem kopeerinud või alla laadinud. Samuti peaksite muutma AWS_STORAGE_BUCKET_NAME ja AWS_S3_REGION_NAME teie S3 ämbri ja piirkonna nimedele.

Piirkonna nime saate, kui navigeerite oma S3 ämbrisse ja kopeerite viimased väärtused AWS piirkond veerg.

6. samm: testige oma AWS-i konfiguratsiooni

Kui ülaltoodud sammud on lõpule viidud, peaksite olema valmis oma rakendust failide üleslaadimisega testima. Järgmised koodinäidised laadivad failid üles otse administraatoripaneelilt, kuid võite oma failid üles laadida ka teisest kohast.

Konteksti jaoks võib teil olla mudel, mis näeb välja järgmine:

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

Veenduge, et teete vajalikud toimingud, nagu migreerimine, selle lisamine administraatoripaneelile, vaate loomine ja muud projekti jaoks vajalikud asjad. Veenduge, et harjutate Django MVT põhimõte.

Kui olete lõpetanud, liikuge oma administraatoripaneelile või mis tahes vormile, mille olete faili üleslaadimiseks loonud, ja laadige üles pildifail.

Liikuge oma põhisaidile ja veenduge, et pilt on seal. Kui on, paremklõpsake pildil ja valige Ava pilt uuel vahekaardil valik. Uuel pilti sisaldaval vahekaardil märkate, et aadressiriba viitab varem loodud S3 ämbrile:

Teine viis konfiguratsiooni toimimise kontrollimiseks on navigeerida AWS-i konsoolil oma ämbrisse. Oma pildi leiate sealt:

7. samm: koguge staatilised failid oma S3 ämbrisse

Siiani olete saanud meediumifaile oma S3 ämbrisse üles laadida; nüüd peate oma staatilised failid üles laadima.

Selleks lisage need konfiguratsioonid oma settings.py fail:

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

Pärast seda avage oma Käsurea liides (CLI) ja käivitage see käsk:

python manage.py collectstatic --noinput

Kinnitamaks, et kõik töötab, avage AWS-konsoolis oma S3 ämber. Näete kausta nimega staatiline.

Kasutage AWS S3 ämbrit palju enama jaoks

AWS S3 koppade võimalused on tohutud! Peaksite sellega tutvuma ja õppima, kuidas S3-d kasutada muudel eesmärkidel, näiteks staatilise veebirakenduse hostimiseks.

S3 ämbrite õige kasutamise teadmine säästab palju aega ja aitab teil luua parema toote või lahenduse. Kuid peaksite ka teadma, et S3 ei pruugi igaks juhuks sobida, seega kaaluge enne selle kasutamist oma projekti nõudeid.