Comment utiliser un Bucket AWS S3 pour héberger des fichiers statiques et multimédias dans Django

Si vous construisez une application web Django, il est essentiel de gérer efficacement les ressources statiques et les fichiers multimédias téléchargés par l’utilisateur.

Dans un environnement de développement, Django gère ces fichiers. Dans un environnement de production, cependant, vous voudrez explorer d’autres options. Il se peut que votre base d’utilisateurs augmente considérablement et que vous ayez à traiter des fichiers beaucoup plus volumineux, tels que des fichiers audio et vidéo.

Le Bucket Simple Storage Service (S3) d’Amazon Web Services (AWS) est une alternative pour l’hébergement de fichiers statiques et multimédias. En intégrant S3 à Django, vous pouvez décharger votre serveur de la gestion des fichiers, réduire la charge et assurer une livraison plus rapide et plus fiable des ressources.

Étape 1 : création d’un compte AWS

Si vous n’avez pas de compte AWS, rendez-vous sur le site AWS et créez un nouveau compte.

Les nouveaux comptes AWS bénéficient d’un accès gratuit à 5 Go de stockage standard S3 chaque mois pendant un an.

Étape 2 : Créer un dépôt S3 pour votre projet

  1. Après avoir créé votre compte AWS, connectez-vous et recherchez S3 dans la barre de recherche en haut, puis sélectionnez la première option.
  2. Après avoir sélectionné la première option, une nouvelle page s’affiche. Cliquez sur le bouton Créer un seau pour créer un seau :
  3. Ensuite, indiquez un nom pour votre seau S3. Vous pouvez laisser la plupart de la configuration par défaut.
  4. Faites défiler vers le bas jusqu’à la section Bloquer les paramètres d’accès public pour ce seau décochez la case Bloquer tous les accès publics et acceptez l’avertissement qui s’affiche.
  5. Une fois que vous avez terminé, cliquez sur le bouton Créer un seau . Cela vous redirigera vers une page qui affiche la liste des buckets S3 que vous avez créés.

Étape 3 : Créer un utilisateur IAM sur AWS

AWS propose un service appelé IAM (Identity and Access Management – gestion des identités et des accès). Cela vous permet de créer un compte distinct pour une personne ou une application spécifique qui doit interagir avec les services AWS.

Vous pouvez attribuer différents niveaux d’autorisations aux utilisateurs IAM, qui représentent les personnes ou les applications qui interagissent avec les services AWS que vous avez créés. Avec les utilisateurs IAM, vous pouvez vous assurer que chaque utilisateur n’a accès qu’aux ressources dont il a besoin et rien de plus.

Voir aussi :  Vue d'ensemble des ORMs populaires en rouille

À des fins de sécurité, vous devez créer un utilisateur IAM pour votre projet Django afin qu’il interagisse avec votre seau S3. Suivez ces étapes pour créer un utilisateur IAM sur AWS :

  1. Dans la barre de recherche, tapez IAM et sélectionnez la première option. Une nouvelle page s’affiche.
  2. Dans la partie gauche de la page IAM, sélectionnez Utilisateurs puis cliquez sur le bouton Ajouter des utilisateurs . Une autre page s’ouvrira pour vous permettre de remplir quelques informations.
  3. Commencez par saisir un nom pour l’utilisateur IAM et cliquez sur le bouton Suivant en bas de la page : Sur la page suivante, vous devez sélectionner les niveaux de permission pour l’utilisateur IAM. Procédez comme suit :
    1. Tout d’abord, sélectionnez le niveau de permission Attacher des politiques directement de l’option Options de permissions de la section
    2. Ensuite, définissez une politique de permission pour votre utilisateur IAM. Cela déterminera ce que l’utilisateur IAM peut et ne peut pas faire. Puisque vous voulez que votre application Django télécharge et charge des fichiers, vous devez lui donner un accès complet au seau S3.
    3. Dans la section Politiques de permissions vous devez rechercher S3FullAccess et sélectionner l’option. Une fois cela fait, cliquez sur l’option Suivant et cliquez sur le bouton Suivant .
  4. Ensuite, passez en revue les politiques de l’utilisateur IAM et cliquez sur le bouton Créer un utilisateur pour créer votre utilisateur IAM.

Étape 4 : Créer une clé d’accès pour votre utilisateur IAM

Dans AWS, une clé d’accès fait référence aux informations d’identification que vous pouvez utiliser pour vous authentifier et accéder de manière sécurisée aux ressources AWS par programme. Votre projet Django doit fournir ces informations d’identification pour accéder à votre seau S3.

Les étapes suivantes vous aideront à générer une clé d’accès pour votre projet.

  1. Après avoir créé votre utilisateur IAM, vous obtiendrez un message d’alerte vous invitant à afficher l’utilisateur. Vous pouvez également visualiser l’utilisateur en cliquant sur l’icône Nom de l’utilisateur.
  2. Ensuite, sélectionnez le Informations d’identification de sécurité et faites défiler l’écran jusqu’à ce que vous trouviez le champ Clés d’accès et sélectionnez Créer une clé d’accès.
  3. Vous devrez sélectionner un cas d’utilisation pour votre accès, afin qu’AWS puisse recommander une autre option le cas échéant. Cela n’affecte pas votre clé d’accès. N’hésitez pas à sélectionner une option telle que Service tiers ou Code local et acceptez l’avertissement qui s’affiche. Une fois que c’est fait, cliquez sur le bouton Suivant et cliquez sur le bouton Suivant
  4. Sur la page suivante, saisissez une balise de description pour votre clé d’accès et cliquez sur le bouton Créer une clé d’accès et cliquez sur le bouton Créer une clé d’accès .
  5. Après avoir créé votre clé d’accès, vous pouvez soit copier vos informations d’identification, soit les télécharger sous la forme d’un fichier CSV. Dans tous les cas, veillez à conserver ces données en toute sécurité.
Voir aussi :  Corriger vos orthographes grâce à Python

Étape 5 : configuration de votre projet Django pour S3 Bucket

Pour utiliser votre seau S3 avec un projet Django, installez ces paquets :

  • django-storages : Ce paquet vous aidera à définir un backend de stockage pour vos fichiers.
  • boto3 : Ce package est le kit de développement logiciel (SDK) AWS pour aider votre projet Python à interagir avec AWS.

Vous pouvez installer ces paquets dans votre environnement virtuel Python avec le gestionnaire de paquets Pip de Python en tapant cette commande dans votre terminal :

Une fois que vous avez réussi à installer ces paquets, ouvrez votre environnement virtuel Python en tapant la commande suivante dans votre terminal settings.py et ajoutez boto3 aux applications installées.

La dernière chose à faire est de configurer votre projet Django pour qu’il utilise le seau AWS S3. Voici la configuration générale à utiliser :

Collez la configuration ci-dessus dans votre settings.py et remplacez les valeurs en conséquence. Remplacez votre fichier AWS_ACCESS_KEY_ID et AWS_SECRET_ACCESS_KEY avec la clé d’accès et la clé d’accès secrète que vous avez copiées ou téléchargées précédemment. Vous devez également modifier l’élément AWS_STORAGE_BUCKET_NAME et AWS_S3_REGION_NAME aux noms de votre seau S3 et de votre région.

Vous pouvez obtenir le nom de la région en naviguant vers votre seau S3 et en copiant les dernières valeurs de l’élément Région AWS de la colonne.

Étape 6 : Testez votre configuration AWS

Une fois les étapes ci-dessus terminées, vous devriez être prêt à tester votre application en téléchargeant des fichiers. Les exemples de code suivants téléchargeront les fichiers directement depuis le panneau d’administration, mais vous êtes libre de télécharger les vôtres depuis un autre endroit.

Voir aussi :  Construire votre application React avec Blueprint UI Toolkit

Pour le contexte, vous pouvez avoir un modèle qui ressemble à ceci :

Veillez à effectuer les opérations nécessaires telles que les migrations, l’ajout au panneau d’administration, la création d’une vue et d’autres choses nécessaires à votre projet. Veillez à mettre en pratique le principe MVT de Django.

Une fois que vous avez terminé, naviguez vers votre panneau d’administration ou tout autre formulaire que vous avez créé pour le téléchargement de fichiers, et téléchargez un fichier image.

Naviguez vers votre site principal et confirmez que l’image s’y trouve. Si c’est le cas, cliquez avec le bouton droit de la souris sur l’image et sélectionnez l’option Ouvrir l’image dans un nouvel onglet dans un nouvel onglet. Dans le nouvel onglet contenant l’image, vous remarquerez que la barre d’adresse fait référence au seau S3 que vous avez créé précédemment :

Une autre façon de confirmer que votre configuration fonctionne est de naviguer vers votre bucket sur la console AWS. Vous y trouverez votre image :

Étape 7 : Collectez les fichiers statiques dans votre seau S3

Jusqu’à présent, vous avez pu télécharger des fichiers multimédias vers votre bucket S3 ; maintenant, vous devez télécharger vos fichiers statiques.

Pour ce faire, ajoutez ces configurations à votre settings.py fichier :

Après cela, ouvrez votre interface de ligne de commande (CLI) et exécutez cette commande :

Pour confirmer que tout fonctionne, ouvrez votre seau S3 dans la console AWS. Vous verrez un dossier appelé statique.

Utiliser le seau S3 d’AWS pour bien d’autres choses encore

Les possibilités offertes par les buckets AWS S3 sont énormes ! Vous devriez vous familiariser avec elles et apprendre à utiliser S3 à d’autres fins, comme l’hébergement d’une application web statique.

Savoir comment utiliser correctement les buckets S3 vous fera gagner beaucoup de temps et vous aidera à créer un meilleur produit ou une meilleure solution. Mais vous devez également savoir que S3 n’est pas forcément adapté à tous les cas de figure, et qu’il convient donc de prendre en compte les exigences de votre projet avant de l’utiliser.

Cliquez pour évaluer cet article !
[Total: Moyenne : ]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *