¿Qué Crearemos?

  • Crearemos un servidor de Nodejs que nos permita subir un archivo desde el fronten a una carpeta en el servidor
  • crea una aplicacion frontend de Javascript o que use un client REST que envie datos

Bibliotecas para subir archivos

Cuando queremos subir archivos en Nodejs es bastante comun que usemos modulos de npm que nos permitan facilitar este proceso, alguno de estos son:

En nuestro caso el que escogeremos sera express-file-upload pero si tienes un proyecto o quieres usar otro, sientete libre de hacerlo porque tal modulo solo se encargara de la subida de tu archivo a tu servidor, a partir de alli el resto de codigo es el mismo para cualquier proyecto de Node.

Subir archivos al Backend

Para este ejemplo estaremos usando un cliente REST como Postman o Thunder Client

Crear un Bucker de AWS

  • Entra en tu cuenta de AWS
  • Busca el servicio de S3
  • Ve en el boton Crear Bucket
  • Coloca los siguientes datos
    • Nombre: faztnodes3
    • Region: us-west-2 Aqui puedes escoger la region que gustes
  • Crea el Bucket

Crea variables de entorno en Nodejs

Crea un archivo .env en la raiz de tu proyecto:

AWS_BUCKET_NAME=faztnodes3
AWS_BUCKET_REGION=us-west-2

Si no encuentas tus datos:

  • bucket name, este lo encuentra cuando creas el bucket: faztnodes3
  • la region lo encuentras en propiedades

Crear Politica en AWS

una vez creado el bucket, necesamos crear una politica para ver quien se pueda conectar a los servicios de AWS.

  • ve a IAM
  • ve a Policies
  • crear policy
  • elige S3 como servicio
  • Elige los siguientes accesos:
    • Enumeracion
      • List bucket
    • Lectura
      • GetObject
    • Escritura
      • PutObject
  • Especifica un recurso, ve en Agregar ARN y añades el recurso que en este caso es el nombre del bucket que hemos creado: faztnodes3
    • Bucket Name: faztnodes3
    • Objectname: * (Any Policy)
  • Luego dale siguiente y cuando llegues a la seccion "Crear politica", colocas un nombre y listo.

Crea un Usuario en AWS IAM

este represetan neustra aplicacion

  • ve a Users
  • coloca un nombre como faztnodeuser
  • selecciona accesso programado
  • Da un click en asociar directamentea politicas existenstes: faztnodes3

esto te dara unas credenciales de accesso, guardalos en tu archivo .env:

AWS_BUCKET_NAME=fazttestb
AWS_BUCKET_REGION=us-west-2

AWS_PUBLIC_KEY=AKIA3RM2O2KNXHIAYJEX
AWS_SECRET_KEY=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

AWS SDK

npm install @aws-sdk/client-s3

A partir de aquie puedes crear el proyecto

Eliminar Bucket

Mas recursos