0

J'ai hébergé mon codage côté serveur en haricot élastique. J'ai utilisé multer pour télécharger des fichiers dans le dossier 'upload', ce qui signifie qu'en utilisant api, le client peut stocker dynamiquement des images ou des pdfs etc dans ce dossier 'upload'. Quand j'ai hébergé le .zip dans les ebs disent que 3 fichiers sont stockés dans le dossier uploads. Et plus de fichiers sont ajoutés après l'hébergement. Maintenant, si je change mon code et déploie mon code sur ebs, le dossier de téléchargement vide est créé. Si je télécharge le code précédent, je ne reçois que les 3 fichiers qui sont là au moment de l'hébergement. Je suis incapable de récupérer les fichiers ajoutés après l'hébergement du code. Comment surmonter cela?Comment obtenir le dossier 'uploads' mis à jour depuis AWS Elastic BeanStalk?

Répondre

0

La première règle d'hébergement d'une application sur ElasticBeanstalk est que votre code devrait être sans état. Par état, je veux dire que cela ne devrait pas dépendre de la machine car les instances sont créées et arrêtées en fonction des besoins de mise à l'échelle. Ce que je fais est de faire tout ce que vous dites, le télécharger dans le dossier de téléchargement mais je le stocke dans S3 (ou quelque part où il est sûr si l'instance est terminée). Donc, fondamentalement, le dossier de téléchargement est juste un emplacement temporaire.

Le contenu créé dynamiquement ne doit pas faire partie de votre base de code.

Vous ne pouvez pas récupérer les données perdues car chaque fois que vous déployez une nouvelle version, le répertoire dans lequel le code est déployé est effacé et la nouvelle version y est copiée. Je crois que c'est /var/app/current/.

Chaque fois que vous voulez traiter les téléchargements à l'avenir, vous devez suivre:

  1. le télécharger sur un répertoire temporaire sur l'instance,
  2. le transférer à un endroit où il est sûr (peut-être quelque chose comme AWS S3),
  3. Enregistrez le lien vers l'objet dans un stockage sécurisé (lien S3) dans la base de données afin de pouvoir télécharger les fichiers si vous le souhaitez.