Hoy día se habla mucho de Amazon y sus S3 para almacenamietno estatico de imagenes, pdf, videos, etc. pero existen otras posibilidades si no te gusta este servicio.

DropBox es bien conocido porque puedes alojar cualquier cosa en la nube de sus servidores, asi que ¿por qué no el contenido estatico de nuestra web?

Existe una gema en Rails capaz de hacer el trabajo duro por nosotros: https://github.com/janko-m/paperclip-dropbox. Ella se encarga de crear un atributo en alguna(s) de nuestras tablas de base de datos que corresponde al archivo que hemos subido a DropBox. De esta manera tenemos controlado lo que subimos porque lo tenemos asociado un atributo de nuestra tabla.

La gema nos pedira una Api de DropBox que crearemos en nuestra cuenta de DropBox y aquí es donde esta el truco porque podemos escoger dos tipos de APIs, una pública y otra privada (crea una carpeta en DropBox igual al nombre de tu App).

 

La privada

Tiene la peculiaridad de ser más lenta al rescatar la Url de nuestro archivo porque hace una peticion a DropBox para que genere una Url que quedara inservible en 4 hora. Esto puede ser útil segun que casos, por ejemplo:
Nos piden desarrollar una aplicacíon que sirva videos a nuestros clientes de pago. En este caso sería útil porque asi un cliente no podría pasar el enlace de su pelicula a otro amigo o publicarlo en su blog ya que ese enlace desaparecería en 4h. Este limite de tiempo está impuesto por DropBox y es inamovible. En caso de querer cambiarlo, tendría que ser responsabilidad de nuestra aplicación controlarlo.

 

Pública

En nuestra cuenta de DropBox tenemos que crear lo que DropBox llama "Carpeta Pública". Esta carpeta es posible que no la tengas en tu cuenta y tengas que habilitarla: Habilitar carpeta pública de DropBox

En este momento tu aplicacion escribirá allí dentro lo que digas en el modelo de tu aplicación RoR. Por ejemplo puedes especificar la carpeta donde escribira ese modelo: [nombre del proyecto]/[nombre del modelo]/[id de la tupla]_[nombre del archivo].
Lo mejor de esta parte es que la resolución de la Url de estos archivos es inmediata (sin restricciones de tiempo) y esto hace reducir mucho la carga de nuestra web.

Es una opción muy interesante para reducir tiempos de carga, distribuir el trabajo pesado entre servidores y en caso de catastrofes poder volver a tener todo marchando sin problemas porque queda todo distribuido y localizado.

Esta web usa esta tecnología, asi que si tienes dudas una buena idea seria mirar el código fuente. El anlace lo tienes más abajo, al final de la página.

 

Saludos!

Rails on DropBox

Volver