Μάθετε πώς μπορείτε να ρυθμίσετε την αποθήκευση αρχείων S3 χρησιμοποιώντας αυτόν τον αναλυτικό οδηγό.

Εάν δημιουργείτε μια εφαρμογή ιστού Django, είναι σημαντικό να χειρίζεστε αποτελεσματικά τα στατικά στοιχεία και τα αρχεία πολυμέσων που έχουν ανεβάσει ο χρήστης.

Σε ένα περιβάλλον ανάπτυξης, το Django διαχειρίζεται αυτά τα αρχεία. Στην παραγωγή, ωστόσο, θα θελήσετε να εξερευνήσετε περαιτέρω επιλογές. Η βάση των χρηστών σας μπορεί να αυξηθεί σημαντικά και μπορεί να έχετε να κάνετε με πολύ μεγαλύτερα αρχεία, όπως ήχο και βίντεο.

Ο κάδος Απλής Υπηρεσίας Αποθήκευσης (S3) των Υπηρεσιών Ιστού της Amazon (AWS) είναι μια εναλλακτική για τη φιλοξενία στατικών αρχείων και αρχείων πολυμέσων. Με την ενσωμάτωση του S3 με το Django, μπορείτε να αποφορτίσετε το βάρος της διαχείρισης αρχείων από τον διακομιστή σας, να μειώσετε το φόρτο και να εξασφαλίσετε ταχύτερη και πιο αξιόπιστη παράδοση στοιχείων.

Βήμα 1: Δημιουργήστε έναν λογαριασμό AWS

Εάν δεν έχετε λογαριασμό AWS, μεταβείτε στο Ιστότοπος AWSκαι δημιουργήστε έναν νέο λογαριασμό.

instagram viewer

Οι νέοι λογαριασμοί AWS έχουν δωρεάν πρόσβαση σε 5 GB τυπικού αποθηκευτικού χώρου S3 κάθε μήνα για ένα χρόνο.

Βήμα 2: Δημιουργήστε έναν κάδο S3 για το έργο σας

  1. Αφού δημιουργήσετε τον λογαριασμό σας AWS, συνδεθείτε και αναζητήστε S3 στη γραμμή αναζήτησης στο επάνω μέρος και, στη συνέχεια, επιλέξτε την πρώτη επιλογή.
  2. Αφού επιλέξετε την πρώτη επιλογή, θα δείτε μια νέα σελίδα. Κάντε κλικ στο Δημιουργία κουβά κουμπί:
  3. Στη συνέχεια, δώστε ένα όνομα για τον κάδο S3 σας. Μπορείτε να αφήσετε το μεγαλύτερο μέρος της διαμόρφωσης ως προεπιλογή.
  4. Κάντε κύλιση προς τα κάτω στο Αποκλεισμός ρυθμίσεων δημόσιας πρόσβασης για αυτόν τον κάδο ενότητα, αποεπιλέξτε το Αποκλεισμός κάθε δημόσιας πρόσβασης και επιβεβαιώστε την προειδοποίηση που εμφανίζεται.
  5. Μόλις τελειώσετε, κάντε κλικ στο Δημιουργία κουβά κουμπί. Θα σας ανακατευθύνει σε μια σελίδα που εμφανίζει μια λίστα με τους κάδους S3 που έχετε δημιουργήσει.

Βήμα 3: Δημιουργήστε έναν χρήστη IAM στο AWS

Το AWS παρέχει μια υπηρεσία που ονομάζεται IAM (Identity and Access Management). Αυτό σας επιτρέπει να δημιουργήσετε έναν ξεχωριστό λογαριασμό για ένα συγκεκριμένο άτομο ή εφαρμογή που πρέπει να αλληλεπιδράσει με τις υπηρεσίες AWS.

Μπορείτε να εκχωρήσετε διαφορετικά επίπεδα δικαιωμάτων σε χρήστες IAM, αντιπροσωπεύοντας άτομα ή εφαρμογές που αλληλεπιδρούν με τις υπηρεσίες AWS που έχετε δημιουργήσει. Με τους χρήστες IAM, μπορείτε να διασφαλίσετε ότι κάθε χρήστης έχει πρόσβαση μόνο στους πόρους που χρειάζεται και τίποτα περισσότερο.

Για λόγους ασφαλείας, θα πρέπει να δημιουργήσετε έναν χρήστη IAM για το έργο σας στο Django ώστε να αλληλεπιδρά με τον κάδο S3. Ακολουθήστε αυτά τα βήματα για να δημιουργήσετε έναν χρήστη IAM στο AWS:

  1. Στη γραμμή αναζήτησης, πληκτρολογήστε ΕΓΩ ΕΙΜΑΙ και επιλέξτε την πρώτη επιλογή. Θα εμφανιστεί μια νέα σελίδα.
  2. Στην αριστερή πλευρά της σελίδας IAM, επιλέξτε Χρήστες, στη συνέχεια προχωρήστε να κάνετε κλικ στο Προσθήκη χρηστών κουμπί. Θα ανοίξει μια άλλη σελίδα για να συμπληρώσετε κάποιες πληροφορίες.
  3. Ξεκινήστε εισάγοντας ένα όνομα για τον χρήστη IAM και κάνοντας κλικ στο Επόμενο κουμπί στο κάτω μέρος: Στην επόμενη σελίδα, πρέπει να επιλέξετε τα επίπεδα δικαιωμάτων για τον χρήστη IAM. Ακολουθήστε αυτά τα βήματα:
    1. Πρώτα, επιλέξτε το Συνδέστε τις πολιτικές απευθείας επιλογή από το Επιλογές δικαιωμάτων Ενότητα.
    2. Στη συνέχεια, ορίστε μια πολιτική άδειας για τον χρήστη IAM. Αυτό θα καθορίσει τι μπορεί και τι δεν μπορεί να κάνει ο χρήστης IAM. Εφόσον θέλετε η εφαρμογή Django σας να κατεβάζει και να ανεβάζει αρχεία, θα πρέπει να της δώσετε πλήρη πρόσβαση στον κάδο S3.
    3. Στο Πολιτικές αδειών ενότητα, θα πρέπει να αναζητήσετε S3FullAccess και επιλέξτε την επιλογή. Μόλις τελειώσετε, κάντε κλικ στο Επόμενο κουμπί.
  4. Στη συνέχεια, ελέγξτε τις πολιτικές για τον χρήστη IAM και κάντε κλικ στο Δημιουργία χρήστη κουμπί για να δημιουργήσετε τον χρήστη IAM σας.

Βήμα 4: Δημιουργήστε ένα κλειδί πρόσβασης για τον χρήστη IAM σας

Στο AWS, ένα κλειδί πρόσβασης αναφέρεται σε διαπιστευτήρια που μπορείτε να χρησιμοποιήσετε για τον έλεγχο ταυτότητας και την ασφαλή πρόσβαση σε πόρους AWS μέσω προγραμματισμού. Το έργο Django σας πρέπει να παρέχει αυτά τα διαπιστευτήρια για να αποκτήσετε πρόσβαση στον κάδο S3 σας.

Τα παρακάτω βήματα θα σας βοηθήσουν να δημιουργήσετε ένα κλειδί πρόσβασης για το έργο σας.

  1. Αφού δημιουργήσετε τον χρήστη IAM, θα λάβετε ένα μήνυμα ειδοποίησης που σας ζητά να προβάλετε τον χρήστη. Εναλλακτικά, μπορείτε να δείτε τον χρήστη κάνοντας κλικ στο Ονομα χρήστη.
  2. Στη συνέχεια, επιλέξτε το Διαπιστευτήρια ασφαλείας καρτέλα, μετακινηθείτε προς τα κάτω για να βρείτε το Πλήκτρα πρόσβασης ενότητα και επιλέξτε Δημιουργία κλειδιού πρόσβασης.
  3. Θα χρειαστεί να επιλέξετε μια περίπτωση χρήσης για την πρόσβασή σας, έτσι η AWS μπορεί να προτείνει μια εναλλακτική επιλογή όπου χρειάζεται. Δεν επηρεάζει το κλειδί πρόσβασής σας. Μη διστάσετε να επιλέξετε μια επιλογή όπως π.χ Υπηρεσία τρίτων ή Τοπικός κωδικός και αναγνωρίστε την προειδοποίηση που εμφανίζεται. Μόλις τελειώσετε, κάντε κλικ στο Επόμενο κουμπί.
  4. Στην επόμενη σελίδα, εισαγάγετε μια ετικέτα περιγραφής για το κλειδί πρόσβασης και κάντε κλικ στο Δημιουργία κλειδιού πρόσβασης κουμπί.
  5. Αφού δημιουργήσετε το κλειδί πρόσβασης, μπορείτε είτε να αντιγράψετε τα διαπιστευτήριά σας είτε να τα κατεβάσετε ως αρχείο CSV. Σε κάθε περίπτωση, φροντίστε να διατηρήσετε αυτά τα δεδομένα ασφαλή και ασφαλή.

Βήμα 5: Διαμορφώστε το Django Project σας για τον κάδο S3

Για να χρησιμοποιήσετε τον κάδο S3 με ένα έργο Django, εγκαταστήστε αυτά τα πακέτα:

  • django-αποθήκες: Αυτό το πακέτο θα σας βοηθήσει να ορίσετε ένα backend αποθήκευσης για τα αρχεία σας.
  • boto3: Αυτό το πακέτο είναι το AWS Κιτ ανάπτυξης λογισμικού (SDK) για να βοηθήσετε το έργο σας Python να αλληλεπιδράσει με το AWS.

Μπορείτε να εγκαταστήσετε αυτά τα πακέτα στο δικό σας Εικονικό περιβάλλον Python με τον διαχειριστή πακέτων Pip της Python πληκτρολογώντας αυτήν την εντολή στο τερματικό σας:

pip install django-storages boto3

Αφού εγκαταστήσετε με επιτυχία αυτά τα πακέτα, ανοίξτε το settings.py αρχείο και προσθήκη boto3 στις εγκατεστημένες εφαρμογές.

Το τελευταίο πράγμα που πρέπει να κάνετε είναι να διαμορφώσετε το έργο Django ώστε να χρησιμοποιεί τον κάδο AWS S3. Ακολουθεί η γενική διαμόρφωση προς χρήση:

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'

Επικολλήστε την παραπάνω διαμόρφωση στο δικό σας settings.py αρχείο και αντικαταστήστε τις τιμές ανάλογα. Αντικαταστήστε το AWS_ACCESS_KEY_ID και AWS_SECRET_ACCESS_KEY με το κλειδί πρόσβασης και το μυστικό κλειδί πρόσβασης που αντιγράψατε ή κατεβάσατε νωρίτερα. Θα πρέπει επίσης να αλλάξετε το AWS_STORAGE_BUCKET_NAME και AWS_S3_REGION_NAME στα ονόματα του κάδου και της περιοχής σας S3.

Μπορείτε να λάβετε το όνομα της περιοχής μεταβαίνοντας στον κάδο S3 και αντιγράφοντας τις τελευταίες τιμές από το Περιοχή AWS στήλη.

Βήμα 6: Δοκιμάστε τη διαμόρφωση του AWS σας

Αφού ολοκληρωθούν τα παραπάνω βήματα, θα πρέπει να είστε έτοιμοι να δοκιμάσετε την αίτησή σας μεταφορτώνοντας αρχεία. Τα ακόλουθα δείγματα κώδικα θα ανεβάσουν αρχεία απευθείας από τον πίνακα διαχείρισης, αλλά μπορείτε να ανεβάσετε τα δικά σας από άλλο μέρος.

Για το πλαίσιο, μπορείτε να έχετε ένα μοντέλο που μοιάζει με αυτό:

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

Βεβαιωθείτε ότι εκτελείτε τις απαραίτητες λειτουργίες, όπως μετεγκαταστάσεις, προσθήκη στον πίνακα διαχείρισης, δημιουργία προβολής και άλλα πράγματα απαραίτητα για το έργο σας. Βεβαιωθείτε ότι κάνετε πρακτική Η αρχή MVT του Django.

Μόλις τελειώσετε, μεταβείτε στον πίνακα διαχείρισης ή σε οποιαδήποτε φόρμα έχετε δημιουργήσει για τη μεταφόρτωση αρχείων και μεταφορτώστε ένα αρχείο εικόνας.

Μεταβείτε στην κύρια τοποθεσία σας και επιβεβαιώστε ότι η εικόνα είναι εκεί. Εάν είναι, κάντε δεξί κλικ στην εικόνα και επιλέξτε το Άνοιγμα εικόνας σε νέα καρτέλα επιλογή. Στη νέα καρτέλα που περιέχει την εικόνα, θα παρατηρήσετε ότι η γραμμή διευθύνσεων αναφέρεται στον κάδο S3 που δημιουργήσατε νωρίτερα:

Ένας άλλος τρόπος για να επιβεβαιώσετε ότι η διαμόρφωσή σας λειτουργεί είναι με πλοήγηση στον κάδο σας στην κονσόλα AWS. Θα βρείτε την εικόνα σας εκεί:

Βήμα 7: Συλλέξτε στατικά αρχεία στον κάδο S3 σας

Μέχρι στιγμής, είχατε τη δυνατότητα να ανεβάσετε αρχεία πολυμέσων στον κάδο S3 σας. τώρα, πρέπει να ανεβάσετε τα στατικά σας αρχεία.

Για να το κάνετε αυτό, προσθέστε αυτές τις διαμορφώσεις στο δικό σας settings.py αρχείο:

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

Μετά από αυτό, ανοίξτε το δικό σας Διεπαφή γραμμής εντολών (CLI) και εκτελέστε αυτήν την εντολή:

python manage.py collectstatic --noinput

Για να επιβεβαιώσετε ότι όλα λειτουργούν, ανοίξτε τον κάδο S3 στην κονσόλα AWS. Θα δείτε έναν φάκελο που ονομάζεται στατικός.

Χρησιμοποιήστε το AWS S3 Bucket για πολλά περισσότερα

Οι δυνατότητες των κουβάδων AWS S3 είναι τεράστιες! Θα πρέπει να εξοικειωθείτε με αυτό και να μάθετε πώς να χρησιμοποιείτε το S3 για άλλους σκοπούς, όπως τη φιλοξενία μιας στατικής εφαρμογής Ιστού.

Η γνώση του πώς να χρησιμοποιείτε σωστά τους κάδους S3 θα σας εξοικονομήσει πολύ χρόνο και θα σας βοηθήσει να δημιουργήσετε ένα καλύτερο προϊόν ή λύση. Αλλά θα πρέπει επίσης να γνωρίζετε ότι το S3 μπορεί να μην είναι κατάλληλο για κάθε περίπτωση, επομένως λάβετε υπόψη τις απαιτήσεις του έργου σας πριν το χρησιμοποιήσετε.