Naučte sa, ako nastaviť ukladanie súborov S3 pomocou tohto podrobného sprievodcu.
Ak vytvárate webovú aplikáciu Django, je nevyhnutné efektívne narábať so statickými aktívami a používateľmi nahranými mediálnymi súbormi.
Vo vývojovom prostredí spravuje tieto súbory Django. Vo výrobe však budete chcieť preskúmať ďalšie možnosti. Vaša používateľská základňa sa môže výrazne rozrásť a môžete sa zaoberať oveľa väčšími súbormi, ako sú audio a video.
Kbelík služby Amazon Web Services (AWS) Simple Storage Service (S3) je jednou z alternatív na hosťovanie statických a mediálnych súborov. Integráciou S3 s Django môžete zo svojho servera odstrániť bremeno správy súborov, znížiť zaťaženie a zabezpečiť rýchlejšie a spoľahlivejšie doručovanie aktív.
Krok 1: Vytvorte si účet AWS
Ak nemáte účet AWS, prejdite na stránka AWSa vytvorte si nový účet.
Nové účty AWS majú bezplatný prístup k 5 GB štandardného úložiska S3 každý mesiac po dobu jedného roka.
Krok 2: Vytvorte S3 Bucket pre svoj projekt
- Po vytvorení účtu AWS sa prihláste a vyhľadajte S3 vo vyhľadávacom paneli v hornej časti a potom vyberte prvú možnosť.
- Po výbere prvej možnosti sa zobrazí nová stránka. Kliknite na Vytvorte vedro tlačidlo:
- Ďalej zadajte názov pre svoj vedro S3. Väčšinu konfigurácie môžete ponechať ako predvolenú.
- Prejdite nadol na Blokovať nastavenia verejného prístupu pre tento segment zrušte začiarknutie Zablokujte všetok verejný prístup nastavenie a potvrďte zobrazené varovanie.
- Po dokončení kliknite na Vytvorte vedro tlačidlo. Presmeruje vás na stránku, ktorá zobrazuje zoznam segmentov S3, ktoré ste vytvorili.
Krok 3: Vytvorte používateľa IAM na AWS
AWS poskytuje službu s názvom IAM (Identity and Access Management). To vám umožní vytvoriť samostatný účet pre konkrétnu osobu alebo aplikáciu, ktorá potrebuje interakciu so službami AWS.
Používateľom IAM môžete prideliť rôzne úrovne povolení, ktoré predstavujú jednotlivcov alebo aplikácie, ktoré interagujú so službami AWS, ktoré ste vytvorili. S používateľmi IAM môžete zabezpečiť, že každý používateľ bude mať prístup iba k zdrojom, ktoré potrebuje, a nič viac.
Z bezpečnostných dôvodov by ste mali pre svoj projekt Django vytvoriť používateľa IAM, ktorý bude interagovať s vaším segmentom S3. Ak chcete vytvoriť používateľa IAM na AWS, postupujte podľa týchto krokov:
- Do vyhľadávacieho panela zadajte SOM a vyberte prvú možnosť. Zobrazí sa nová stránka.
- Na ľavej strane stránky IAM vyberte Používateliaa potom pokračujte kliknutím na Pridajte používateľov tlačidlo. Otvorí sa ďalšia stránka na vyplnenie niektorých informácií.
- Začnite zadaním mena používateľa IAM a kliknutím na Ďalšie tlačidlo v spodnej časti: Na ďalšej stránke musíte vybrať úrovne povolení pre používateľa IAM. Nasleduj tieto kroky:
- Najprv vyberte Pripojte politiky priamo možnosť z Možnosti povolení oddiele.
- Ďalej definujte politiku povolení pre svojho používateľa IAM. Toto určí, čo používateľ IAM môže a čo nemôže robiť. Keďže chcete, aby vaša aplikácia Django sťahovala a nahrávala súbory, mali by ste jej poskytnúť úplný prístup k S3.
- V Pravidlá povolení sekciu, mali by ste vyhľadať S3FullAccess a vyberte možnosť. Po dokončení kliknite na Ďalšie tlačidlo.
- Ďalej si prečítajte zásady pre používateľa IAM a kliknite na Vytvoriť používateľa vytvorte svojho používateľa IAM.
Krok 4: Vytvorte prístupový kľúč pre svojho používateľa IAM
V AWS sa prístupový kľúč vzťahuje na poverenia, ktoré môžete použiť na overenie a bezpečný prístup k prostriedkom AWS programovo. Váš projekt Django musí poskytnúť tieto poverenia na prístup k vášmu segmentu S3.
Nasledujúce kroky vám pomôžu vygenerovať prístupový kľúč pre váš projekt.
- Po vytvorení používateľa IAM dostanete výstražnú správu, ktorá vás vyzve na zobrazenie používateľa. Používateľa môžete tiež zobraziť kliknutím na Používateľské meno.
- Ďalej vyberte Bezpečnostné poverenia prejdite nadol a vyhľadajte Prístupové kľúče sekciu a vyberte Vytvorte prístupový kľúč.
- Budete si musieť vybrať prípad použitia pre svoj prístup, aby vám AWS mohla v prípade potreby odporučiť alternatívnu možnosť. Nemá to vplyv na váš prístupový kľúč. Pokojne si vyberte možnosť ako napr Služba tretej strany alebo Miestny kód a potvrďte varovanie, ktoré sa objaví. Po dokončení kliknite na Ďalšie tlačidlo.
- Na ďalšej stránke zadajte popisný štítok pre váš prístupový kľúč a kliknite na Vytvorte prístupový kľúč tlačidlo.
- Po vytvorení prístupového kľúča môžete skopírovať svoje poverenia alebo si ich stiahnuť ako súbor CSV. V každom prípade sa uistite, že tieto údaje sú v bezpečí.
Krok 5: Nakonfigurujte svoj projekt Django pre S3 Bucket
Ak chcete použiť svoj vedro S3 s projektom Django, nainštalujte tieto balíky:
- sklady django: Tento balík vám pomôže definovať backend úložiska pre vaše súbory.
- boto3: Tento balík je AWS Súprava na vývoj softvéru (SDK) pomôcť vášmu projektu Python pri interakcii s AWS.
Tieto balíky môžete nainštalovať do svojho Virtuálne prostredie Python pomocou správcu balíkov Pip Pythonu zadaním tohto príkazu do terminálu:
pip install django-storages boto3
Po úspešnej inštalácii týchto balíkov otvorte svoj settings.py súbor a pridajte boto3 k nainštalovaným aplikáciám.
Posledná vec, ktorú musíte urobiť, je nakonfigurovať svoj projekt Django tak, aby používal vedro AWS S3. Tu je všeobecná konfigurácia na použitie:
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'
Vložte vyššie uvedenú konfiguráciu do svojho settings.py súbor a podľa toho nahraďte hodnoty. Vymeňte svoje AWS_ACCESS_KEY_ID a AWS_SECRET_ACCESS_KEY s prístupovým kľúčom a tajným prístupovým kľúčom, ktoré ste skopírovali alebo stiahli predtým. Mali by ste tiež zmeniť AWS_STORAGE_BUCKET_NAME a AWS_S3_REGION_NAME na názvy vášho vedra S3 a regiónu.
Názov regiónu môžete získať tak, že prejdete do svojho segmentu S3 a skopírujete posledné hodnoty z región AWS stĺpec.
Krok 6: Otestujte svoju konfiguráciu AWS
Po dokončení vyššie uvedených krokov by ste mali byť pripravení otestovať svoju aplikáciu nahraním súborov. Nasledujúce ukážky kódu nahrajú súbory priamo z panela správcu, ale svoje môžete nahrať z iného miesta.
Pre kontext môžete mať model, ktorý vyzerá takto:
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
Uistite sa, že ste vykonali potrebné operácie, ako sú migrácie, pridanie na panel správcu, vytvorenie zobrazenia a ďalšie veci potrebné pre váš projekt. Uistite sa, že cvičíte Djangov princíp MVT.
Po dokončení prejdite na panel správcu alebo na akýkoľvek formulár, ktorý ste vytvorili na odovzdanie súboru, a nahrajte súbor obrázka.
Prejdite na svoju hlavnú stránku a potvrďte, že tam obrázok je. Ak áno, kliknite pravým tlačidlom myši na obrázok a vyberte položku Otvoriť obrázok na novej karte možnosť. Na novej karte s obrázkom si všimnete, že panel s adresou odkazuje na segment S3, ktorý ste vytvorili predtým:
Ďalším spôsobom, ako potvrdiť, že vaša konfigurácia funguje, je prejsť do vášho segmentu na konzole AWS. Nájdete tam svoj obrázok:
Krok 7: Zbierajte statické súbory do svojho S3 Bucketu
Doposiaľ ste mohli nahrať mediálne súbory do svojho bucketu S3; teraz musíte nahrať svoje statické súbory.
Ak to chcete urobiť, pridajte tieto konfigurácie do svojho settings.py súbor:
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
AWS_LOCATION = 'static'
Potom otvorte svoje Rozhranie príkazového riadka (CLI) a spustite tento príkaz:
python manage.py collectstatic --noinput
Ak chcete potvrdiť, že všetko funguje, otvorte vedro S3 v konzole AWS. Uvidíte priečinok s názvom statické.
Použite AWS S3 Bucket pre oveľa viac
Možnosti vedier AWS S3 sú obrovské! Mali by ste sa s ním zoznámiť a naučiť sa používať S3 na iné účely, ako je napríklad hosťovanie statickej webovej aplikácie.
Vedieť, ako správne používať vedrá S3, vám ušetrí veľa času a pomôže vám vytvoriť lepší produkt alebo riešenie. Mali by ste si však byť vedomí toho, že S3 nemusí byť vhodný pre každý prípad, preto pred jeho použitím zvážte požiadavky svojho projektu.