Sužinokite, kaip nustatyti S3 failų saugyklą, naudodami šį nuoseklų vadovą.

Jei kuriate „Django“ žiniatinklio programą, labai svarbu efektyviai tvarkyti statinius išteklius ir vartotojo įkeltus medijos failus.

Kūrimo aplinkoje Django tvarko šiuos failus. Tačiau gamyboje norėsite ištirti daugiau galimybių. Jūsų vartotojų bazė gali labai padidėti, o jums gali būti taikomi daug didesni failai, pvz., garso ir vaizdo įrašai.

„Amazon Web Services“ (AWS) paprastos saugojimo paslaugos (S3) segmentas yra viena iš alternatyvų statiniams ir medijos failams talpinti. Integravę S3 su Django, galite nukelti failų valdymo naštą nuo savo serverio, sumažinti apkrovą ir užtikrinti greitesnį bei patikimesnį išteklių pristatymą.

1 veiksmas: sukurkite AWS paskyrą

Jei neturite AWS paskyros, eikite į AWS svetainėir susikurkite naują paskyrą.

Naujos AWS paskyros turi nemokamą prieigą prie 5 GB standartinės S3 saugyklos kas mėnesį metus.

2 veiksmas: sukurkite S3 kibirą savo projektui

  1. Sukūrę AWS paskyrą prisijunkite ir ieškokite S3 viršuje esančioje paieškos juostoje, tada pasirinkite pirmąją parinktį.
  2. instagram viewer
  3. Pasirinkę pirmąją parinktį, pamatysite naują puslapį. Spustelėkite Sukurti kibirą mygtukas:
  4. Tada nurodykite savo S3 kibiro pavadinimą. Daugumą konfigūracijos galite palikti kaip numatytąją.
  5. Slinkite žemyn iki Blokuoti šio segmento viešosios prieigos nustatymus skyrių, panaikinkite žymėjimą Blokuoti visą viešą prieigą nustatymą ir patvirtinkite pasirodžiusį įspėjimą.
  6. Baigę spustelėkite Sukurti kibirą mygtuką. Jis nukreips jus į puslapį, kuriame rodomas jūsų sukurtų S3 segmentų sąrašas.

3 veiksmas: sukurkite IAM naudotoją AWS

AWS teikia paslaugą, vadinamą IAM (tapatybės ir prieigos valdymas). Tai leidžia sukurti atskirą paskyrą konkrečiam asmeniui arba programai, kuri turi sąveikauti su AWS paslaugomis.

Galite priskirti skirtingų lygių teises IAM naudotojams, atstovaujantiems asmenims arba programoms, sąveikaujančioms su jūsų sukurtomis AWS paslaugomis. Naudodami IAM naudotojus galite užtikrinti, kad kiekvienas vartotojas turėtų prieigą tik prie jam reikalingų išteklių ir nieko daugiau.

Saugumo sumetimais savo „Django“ projektui turėtumėte sukurti IAM naudotoją, kuris sąveikautų su jūsų S3 segmentu. Norėdami sukurti IAM vartotoją AWS, atlikite šiuos veiksmus:

  1. Paieškos juostoje įveskite AŠ ESU ir pasirinkite pirmą parinktį. Atsiras naujas puslapis.
  2. Kairėje IAM puslapio pusėje pasirinkite Vartotojai, tada spustelėkite Pridėti vartotojų mygtuką. Bus atidarytas kitas puslapis, kuriame bus užpildyta tam tikra informacija.
  3. Pradėkite įvesdami IAM vartotojo vardą ir spustelėdami Kitas mygtukas apačioje: Kitame puslapyje turite pasirinkti IAM vartotojo teisių lygius. Atlikite šiuos veiksmus:
    1. Pirmiausia pasirinkite Tiesiogiai pridėkite politiką parinktis iš Leidimų parinktys skyrius.
    2. Tada nustatykite savo IAM vartotojo leidimo politiką. Tai nustatys, ką IAM vartotojas gali ir ko negali daryti. Kadangi norite, kad jūsų „Django“ programa atsisiųstų ir įkeltų failus, turėtumėte suteikti jai visą prieigą prie S3 kibiro.
    3. Viduje Leidimų politika skyrių, turėtumėte ieškoti S3FullAccess ir pasirinkite parinktį. Baigę spustelėkite Kitas mygtuką.
  4. Tada peržiūrėkite IAM naudotojo politiką ir spustelėkite Sukurti vartotoją mygtuką, kad sukurtumėte savo IAM vartotoją.

4 veiksmas: sukurkite prieigos raktą savo IAM vartotojui

AWS prieigos raktas nurodo kredencialus, kuriuos galite naudoti autentifikuoti ir saugiai programiškai pasiekti AWS išteklius. Jūsų „Django“ projektas turi pateikti šiuos kredencialus, kad galėtumėte pasiekti jūsų S3 kibirą.

Šie veiksmai padės sugeneruoti projekto prieigos raktą.

  1. Sukūrę IAM naudotoją, gausite įspėjimo pranešimą, raginantį peržiūrėti vartotoją. Arba galite peržiūrėti vartotoją spustelėdami Vartotojo vardas.
  2. Tada pasirinkite Saugos kredencialai skirtuką, slinkite žemyn, kad rastumėte Prieigos klavišai skyrių ir pasirinkite Sukurti prieigos raktą.
  3. Turėsite pasirinkti prieigos atvejį, kad AWS prireikus galėtų rekomenduoti alternatyvią parinktį. Tai neturi įtakos jūsų prieigos raktui. Nedvejodami pasirinkite tokią parinktį kaip Trečiųjų šalių paslauga arba Vietinis kodas ir patvirtinkite pasirodžiusį įspėjimą. Baigę spustelėkite Kitas mygtuką.
  4. Kitame puslapyje įveskite prieigos rakto aprašo žymą ir spustelėkite Sukurti prieigos raktą mygtuką.
  5. Sukūrę prieigos raktą, galite nukopijuoti kredencialus arba atsisiųsti juos kaip CSV failą. Bet kuriuo atveju įsitikinkite, kad šie duomenys yra saugūs.

5 veiksmas: sukonfigūruokite „Django“ projektą S3 kibirui

Norėdami naudoti S3 kibirą su Django projektu, įdiekite šiuos paketus:

  • django saugyklos: Šis paketas padės nustatyti failų saugyklos vidinę programą.
  • boto3: Šis paketas yra AWS Programinės įrangos kūrimo rinkinys (SDK) padėti jūsų Python projektui sąveikauti su AWS.

Šiuos paketus galite įdiegti į savo Python virtuali aplinka su Python's Pip paketų tvarkykle įvesdami šią komandą savo terminale:

pip install django-storages boto3

Sėkmingai įdiegę šiuos paketus atidarykite savo settings.py failą ir pridėti boto3 į įdiegtas programas.

Paskutinis dalykas, kurį reikia padaryti, yra sukonfigūruoti „Django“ projektą naudoti AWS S3 kibirą. Štai bendra naudotina konfigūracija:

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'

Įklijuokite aukščiau pateiktą konfigūraciją į savo settings.py failą ir atitinkamai pakeiskite reikšmes. Pakeiskite savo AWS_ACCESS_KEY_ID ir AWS_SECRET_ACCESS_KEY su prieigos raktu ir slaptuoju prieigos raktu, kurį nukopijavote arba atsisiuntėte anksčiau. Taip pat turėtumėte pakeisti AWS_STORAGE_BUCKET_NAME ir AWS_S3_REGION_NAME į jūsų S3 segmento ir regiono pavadinimus.

Regiono pavadinimą galite gauti nuėję į savo S3 segmentą ir nukopijuodami paskutines reikšmes iš AWS regionas stulpelyje.

6 veiksmas: patikrinkite AWS konfigūraciją

Atlikę aukščiau nurodytus veiksmus, turėtumėte būti pasirengę išbandyti programą įkeldami failus. Šie kodo pavyzdžiai įkels failus tiesiai iš administratoriaus skydelio, bet jūs galite laisvai įkelti savo iš kitos vietos.

Dėl konteksto galite turėti modelį, kuris atrodo taip:

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

Įsitikinkite, kad atlikote būtinas operacijas, tokias kaip perkėlimas, įtraukimas į administratoriaus skydelį, rodinio kūrimas ir kiti projektui reikalingi dalykai. Įsitikinkite, kad praktikuojate Django MVT principas.

Baigę eikite į savo administratoriaus skydelį arba bet kurią formą, kurią sukūrėte failams įkelti, ir įkelkite vaizdo failą.

Eikite į savo pagrindinę svetainę ir patvirtinkite, kad ten yra vaizdas. Jei taip, dešiniuoju pelės mygtuku spustelėkite paveikslėlį ir pasirinkite Atidaryti vaizdą naujame skirtuke variantas. Naujame skirtuke, kuriame yra vaizdas, pastebėsite, kad adreso juosta nurodo anksčiau sukurtą S3 segmentą:

Kitas būdas patikrinti, ar jūsų konfigūracija veikia, yra AWS konsolės naršymas į kibirą. Savo atvaizdą rasite ten:

7 veiksmas: surinkite statinius failus į savo S3 kibirą

Iki šiol jūs galėjote įkelti medijos failus į savo S3 kibirą; dabar turite įkelti statinius failus.

Norėdami tai padaryti, pridėkite šias konfigūracijas prie savo settings.py failas:

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

Po to atidarykite savo Komandinės eilutės sąsaja (CLI) ir paleiskite šią komandą:

python manage.py collectstatic --noinput

Norėdami patvirtinti, kad viskas veikia, atidarykite S3 kibirą AWS konsolėje. Pamatysite aplanką pavadinimu statinis.

Naudokite AWS S3 kibirą, kad gautumėte daug daugiau

AWS S3 kaušų galimybės yra didžiulės! Turėtumėte susipažinti su ja ir išmokti naudoti S3 kitiems tikslams, pavyzdžiui, prieglobos statinę žiniatinklio programą.

Žinodami, kaip tinkamai naudoti S3 kaušus, sutaupysite daug laiko ir galėsite sukurti geresnį produktą ar sprendimą. Tačiau taip pat turėtumėte žinoti, kad S3 gali netikti kiekvienu atveju, todėl prieš naudodami apsvarstykite projekto reikalavimus.