Recordemos dónde y hasta donde tenemos nuestro proyecto, puedes descargarlo o clonarlo directamente desde:
https://github.com/platzi/platzigram/tree/master
Para instalar todas las dependencias listadas en el mismo, basta con usar el comando:
npm install
Para comprobar que todo va bien, iniciaremos la aplicación con:
npm start
Por defecto, la aplicación correrá en el puerto 3000
Ahora, en nuestro servidor ( server.js ) vamos a sustituir toda la lógica de guardado en disco de nuestras imágenes a nuestro Bucket en S3.
Existen 2 librerías que necesitamos incluir para que dispongamos de esta funcionalidad en nuestra aplicación:
Adicional de unos parametros de configuración.
Es una buena práctica, que todos esos parametros de configuración se encuentren separados en otro archivo independiente de la lógica de la aplicación y mantener nuestras credenciales seguras, en nuestro caso lo llamaremos config.js
Entonces, instanciamos un objeto de la clase S3 usando el archivo de configuración:
Var s3 = new aws.S3({
accesKeyId: config.ws.accessKey,
secretAccessKey: config.ws.secretKey
})
Y ahora, Storage tendrá algunos nuevos parametros:
S3: La instancia de s3 que creamos
bucket: El nombre del bucket que requerimos
ACL: Este es el listado de los archivos que vamos a tener guardados en s3
metadata: Es la metadata de nuestro archivo
Key: Es el nombre del archivo
Ahora, nuestros secret key y access key obtenidos desde la configuración de AWS, deben ser configurados cómo variables de entorno, por eso es muy importante crear un env.sh, podemos comprobar desde terminal con:
$AWS_ACCESS_KEY