Uzziniet, kā iestatīt S3 failu krātuvi, izmantojot šo soli pa solim sniegto rokasgrāmatu.

Ja veidojat Django tīmekļa lietotni, ir svarīgi efektīvi apstrādāt statiskos līdzekļus un lietotāju augšupielādētos multivides failus.

Izstrādes vidē Django pārvalda šos failus. Tomēr ražošanā jūs vēlēsities izpētīt papildu iespējas. Jūsu lietotāju bāze var ievērojami pieaugt, un jums var būt darīšana ar daudz lielākiem failiem, piemēram, audio un video.

Amazon Web Services (AWS) vienkāršā krātuves pakalpojuma (S3) kauss ir viena alternatīva statisku un multivides failu mitināšanai. Integrējot S3 ar Django, jūs varat atslogot failu pārvaldības slogu no sava servera, samazināt slodzi un nodrošināt ātrāku un uzticamāku līdzekļu piegādi.

1. darbība. Izveidojiet AWS kontu

Ja jums nav AWS konta, dodieties uz AWS vietneun izveidojiet jaunu kontu.

Jaunajiem AWS kontiem ir bezmaksas piekļuve 5 GB standarta S3 krātuvei katru mēnesi vienu gadu.

2. darbība. Izveidojiet savam projektam S3 kausu

  1. Pēc AWS konta izveides piesakieties un meklējiet S3 augšpusē esošajā meklēšanas joslā, pēc tam atlasiet pirmo opciju.
  2. Pēc pirmās opcijas atlasīšanas jūs redzēsit jaunu lapu. Noklikšķiniet uz Izveidojiet spaini poga:
  3. Pēc tam norādiet S3 kausa nosaukumu. Lielāko daļu konfigurācijas varat atstāt kā noklusējuma iestatījumu.
  4. Ritiniet uz leju līdz Bloķēt publiskās piekļuves iestatījumus šim segmentam sadaļā, noņemiet atzīmi no Bloķēt visu publisko piekļuvi iestatījumu un apstipriniet parādīto brīdinājumu.
  5. Kad tas ir izdarīts, noklikšķiniet uz Izveidojiet spaini pogu. Tas jūs novirzīs uz lapu, kurā ir parādīts jūsu izveidoto S3 segmentu saraksts.

3. darbība. Izveidojiet IAM lietotāju pakalpojumā AWS

AWS nodrošina pakalpojumu ar nosaukumu IAM (identitātes un piekļuves pārvaldība). Tas ļauj izveidot atsevišķu kontu konkrētai personai vai lietojumprogrammai, kurai nepieciešams mijiedarboties ar AWS pakalpojumiem.

IAM lietotājiem varat piešķirt dažādu līmeņu atļaujas, kas pārstāv personas vai lietojumprogrammas, kas mijiedarbojas ar jūsu izveidotajiem AWS pakalpojumiem. Izmantojot IAM lietotājus, jūs varat nodrošināt, ka katram lietotājam ir piekļuve tikai tiem resursiem, kas viņam nepieciešami, un nekas vairāk.

Drošības nolūkos jums ir jāizveido IAM lietotājs savam Django projektam, lai mijiedarbotos ar jūsu S3 segmentu. Veiciet šīs darbības, lai izveidotu IAM lietotāju AWS:

  1. Meklēšanas joslā ierakstiet ES ESMU un atlasiet pirmo opciju. Parādīsies jauna lapa.
  2. IAM lapas kreisajā pusē atlasiet Lietotāji, pēc tam turpiniet noklikšķināt uz Pievienojiet lietotājus pogu. Tiks atvērta cita lapa, lai aizpildītu kādu informāciju.
  3. Sāciet, ievadot IAM lietotāja vārdu un noklikšķinot uz Nākamais poga apakšā: Nākamajā lapā ir jāatlasa atļauju līmeņi IAM lietotājam. Veiciet tālāk norādītās darbības.
    1. Vispirms atlasiet Pievienojiet politikas tieši opcija no Atļauju opcijas sadaļā.
    2. Pēc tam definējiet atļauju politiku savam IAM lietotājam. Tas noteiks, ko IAM lietotājs var un ko nevar darīt. Tā kā vēlaties, lai jūsu Django lietotne lejupielādētu un augšupielādētu failus, jums vajadzētu piešķirt tai pilnu piekļuvi S3 spainim.
    3. Iekš Atļauju politikas sadaļā, jums vajadzētu meklēt S3FullAccess un atlasiet opciju. Kad tas ir izdarīts, noklikšķiniet uz Nākamais pogu.
  4. Pēc tam pārskatiet IAM lietotāja politikas un noklikšķiniet uz Izveidot lietotāju pogu, lai izveidotu savu IAM lietotāju.

4. darbība. Izveidojiet piekļuves atslēgu savam IAM lietotājam

Programmā AWS piekļuves atslēga attiecas uz akreditācijas datiem, ko varat izmantot, lai autentificētu un programmatiski piekļūtu AWS resursiem. Jūsu Django projektam ir jāiesniedz šie akreditācijas dati, lai piekļūtu jūsu S3 segmentam.

Tālāk norādītās darbības palīdzēs jums izveidot piekļuves atslēgu savam projektam.

  1. Pēc IAM lietotāja izveides jūs saņemsit brīdinājuma ziņojumu, kas liks skatīt lietotāju. Varat arī skatīt lietotāju, noklikšķinot uz Lietotājvārds.
  2. Pēc tam atlasiet Drošības akreditācijas dati cilni, ritiniet uz leju, lai atrastu Piekļuves atslēgas sadaļu un atlasiet Izveidojiet piekļuves atslēgu.
  3. Jums būs jāatlasa piekļuves lietošanas gadījums, lai AWS vajadzības gadījumā varētu ieteikt alternatīvu iespēju. Tas neietekmē jūsu piekļuves atslēgu. Jūtieties brīvi izvēlēties tādu iespēju kā Trešās puses pakalpojums vai Vietējais kods un apstipriniet uznirstošo brīdinājumu. Kad tas ir izdarīts, noklikšķiniet uz Nākamais pogu.
  4. Nākamajā lapā ievadiet piekļuves atslēgas apraksta tagu un noklikšķiniet uz Izveidojiet piekļuves atslēgu pogu.
  5. Pēc piekļuves atslēgas izveides varat nokopēt savus akreditācijas datus vai lejupielādēt tos kā CSV failu. Jebkurā gadījumā noteikti glabājiet šos datus drošībā.

5. darbība: konfigurējiet savu Django projektu S3 kausam

Lai izmantotu S3 kausu ar Django projektu, instalējiet šīs pakotnes:

  • django krātuves: šī pakotne palīdzēs definēt jūsu failu krātuves aizmugursistēmu.
  • boto3: šī pakotne ir AWS Programmatūras izstrādes komplekts (SDK) lai palīdzētu jūsu Python projektam mijiedarboties ar AWS.

Jūs varat instalēt šīs pakotnes savā Python virtuālā vide ar Python's Pip pakotņu pārvaldnieku, terminālī ierakstot šo komandu:

pip install django-storages boto3

Kad esat veiksmīgi instalējis šīs pakotnes, atveriet savu settings.py failu un pievienot boto3 uz instalētajām lietotnēm.

Pēdējā lieta, kas jādara, ir konfigurēt savu Django projektu, lai izmantotu AWS S3 spaini. Šeit ir vispārīgā lietojamā konfigurācija:

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'

Ielīmējiet iepriekš minēto konfigurāciju savā settings.py failu un attiecīgi aizstājiet vērtības. Nomainiet savu AWS_ACCESS_KEY_ID un AWS_SECRET_ACCESS_KEY ar piekļuves atslēgu un slepeno piekļuves atslēgu, ko iepriekš nokopējāt vai lejupielādējāt. Jums vajadzētu arī mainīt AWS_STORAGE_BUCKET_NAME un AWS_S3_REGION_NAME uz jūsu S3 segmenta un reģiona nosaukumiem.

Reģiona nosaukumu varat iegūt, pārejot uz savu S3 segmentu un kopējot pēdējās vērtības no AWS reģions kolonna.

6. darbība: pārbaudiet savu AWS konfigurāciju

Kad iepriekš minētās darbības ir pabeigtas, jums vajadzētu būt gatavam pārbaudīt savu lietojumprogrammu, augšupielādējot failus. Tālāk norādītie koda paraugi augšupielādēs failus tieši no administrēšanas paneļa, taču jūs varat augšupielādēt savus failus no citas vietas.

Kontekstam varat izveidot modeli, kas izskatās šādi:

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

Noteikti veiciet nepieciešamās darbības, piemēram, migrēšanu, pievienošanu administratora panelim, skata izveidi un citas jūsu projektam nepieciešamās darbības. Pārliecinieties, ka praktizējat Django MVT princips.

Kad esat pabeidzis, pārejiet uz savu administratora paneli vai jebkuru veidlapu, ko esat izveidojis failu augšupielādei, un augšupielādējiet attēla failu.

Dodieties uz savu galveno vietni un apstipriniet, ka attēls ir tur. Ja tā ir, ar peles labo pogu noklikšķiniet uz attēla un atlasiet Atvērt attēlu jaunā cilnē opciju. Jaunajā cilnē, kurā ir attēls, pamanīsit, ka adreses joslā ir atsauce uz iepriekš izveidoto S3 segmentu:

Vēl viens veids, kā pārbaudīt, vai konfigurācija darbojas, ir AWS konsolē pārejot uz savu segmentu. Tur jūs atradīsit savu attēlu:

7. darbība: savāciet statiskos failus savā S3 kausā

Līdz šim jūs esat varējis augšupielādēt multivides failus savā S3 spainī; tagad jums ir jāaugšupielādē savi statiskie faili.

Lai to izdarītu, pievienojiet šīs konfigurācijas savam settings.py fails:

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

Pēc tam atveriet savu Komandrindas interfeiss (CLI) un palaidiet šo komandu:

python manage.py collectstatic --noinput

Lai pārliecinātos, ka viss darbojas, atveriet savu S3 spaini AWS konsolē. Jūs redzēsit mapi ar nosaukumu statisks.

Izmantojiet AWS S3 kausu, lai iegūtu daudz vairāk

AWS S3 kausu iespējas ir milzīgas! Jums vajadzētu iepazīties ar to un iemācīties izmantot S3 citiem mērķiem, piemēram, statiskas tīmekļa lietojumprogrammas mitināšanai.

Zinot, kā pareizi lietot S3 spaiņus, jūs ietaupīsiet daudz laika un palīdzēsiet izveidot labāku produktu vai risinājumu. Bet jums arī jāapzinās, ka S3 var nebūt piemērots visiem gadījumiem, tāpēc pirms tā izmantošanas apsveriet projekta prasības.