2 votes

Comment utiliser mongo et AWS pour stocker des fichiers

Je suis en train de créer une application web qui stocke un grand nombre de documents pdf, c'est-à-dire du contenu éducatif.

Je sais que ce n'est pas une bonne pratique de stocker des fichiers pdf dans ma base de données, c'est-à-dire MongoDB.

J'ai donc l'intention de stocker des fichiers pdf sur AWS et d'autres détails liés au fichier pdf comme le titre, le sujet, les vues, les évaluations, l'auteur, etc. sur ma base de données MongoDB.

Je suis totalement novice en matière d'AWS. Je vais trouver un moyen de télécharger des fichiers vers AWS à l'aide de node, mais je ne sais pas comment lier le fichier à un document (enregistrement) dans MongoDB.

REMARQUE : Le fichier doit être lié à un enregistrement particulier de manière à ce que je puisse facilement récupérer le fichier sur le front-end en utilisant une URL ou quelque chose comme ça. Ces fichiers ne doivent pas être accessibles directement en ouvrant cette URL, ils doivent être accessibles uniquement en utilisant mon site web.

Toute suggestion supplémentaire sera appréciée.

4voto

Fabio Manzano Points 1714

Cet article montre quelque chose d'assez similaire à ce que vous voulez réaliser (au lieu de documents, ils travaillent avec des images).

Utilisez MongoDB (ou DynamoDB (qui est un service AWS) pour stocker les métadonnées de votre document et S3 pour stocker le document lui-même. Le flux ressemblera à ceci : enter image description here

Notez que, dans ce cas, le développeur utilise un fichier Fonction lambda pour sauvegarder les métadonnées. Vous pouvez utiliser Node.js pour mettre en œuvre votre fonction Lambda.

1voto

Joaquin Roca Points 101

Peut-être pouvez-vous ajouter un champ à l'enregistrement mongo qui contient l'url de S3 ?

1voto

james gicharu Points 59

La meilleure approche que je puisse adopter est de télécharger un fichier pdf avec https://www.npmjs.com/package/multer ou https://www.npmjs.com/package/formidable à l'instance AWS EC2, stockez les métadonnées du fichier, y compris la clé d'objet AWS S3 qui peut être utilisée pour obtenir l'objet de s3 avec AWS SDK pour JavaScript . voir Travailler avec des objets Amazon S3

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X