Amazon tiene tantas herramientas que en mi día a día desarrollando se vuelven indispensables, en especial S3 (Amazon Simple Storage Service)
Amazon S3 es almacenamiento para Internet. Está diseñado para facilitar a los desarrolladores la informática a escala web.
La idea de este articulo es integrar Sintra con esta plataforma, lo cual se logra de la siguiente manera.
aws-s3 Gem
Ruby cuenta con una gran variedad de gemas que permiten conectarnos con el API de Amazon de una manera muy sencilla, para su uso unicamente hace falta agregar a nuestro gemfile la siguiente linea.
1
| |
y a nuestro archivode la clase principal en sinatra (en mi caso app.rb)
1
| |
Conectandonos
ya tenemos nuestra gema y hacemos uso de ella en nuestro proyecto, ahora ebemos conectarnos, necesitaremos tener las credenciales de acceso que podemos obtener Aqui :), lo siguiente sera usar esas llaves y crear un metodo que nos conecte cuando lo necesitemos algo asi :)
1 2 3 4 5 6 7 8 | |
Subiendo archivos
Ya conectados podemos hacer “maravillas” literalmente xD, antes seria bueno que conocieras un poco sobre los buckets, ahora subiremos un archivo basado en un formulario html que envia por post nuestro archivo al cual posteriormente lo subiremos :). algo asi:
1 2 3 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
En nuestra ruta post '/upload' lo que hacemos es indicar que en dado caso que no se envie ninguna foto redireccione a una pagina de error ( o haga lo que desees ) y creamos 2 variables las cuales son tmpfile que almacena nuestro archivo y name que le asigna un nombre ( puede ser el mismo de la imagen o uno que nosotros especifiquemos ). luego simplemente subimos nuestro archivo al bucket que le indiquemos y le damos acceso publico.
Eliminando archivos
Por cuestion de buenas practicas, ahorrar espacio o se te dio la gana xD deseas eliminar un archivo debes hacer lo siguiente.
1 2 3 | |
lo primero que se hace es buscar el archivo por su nombre en el bucket que deseemos y posteriormente lo eliminamos :)
Conclusion
Como ven es bastante simple el manejo de AWS-S3 en ruby simplemente es darle rienda suelta a nuestra imaginacion y usar este servicio para almacenar cuanto se nos ocurra :).
por cierto una buena practica con Heroku es la creacion de variables de configuracion para no escribir nunca en nuestro codigo estos valioso datos.
espero les guste la guia :)