Dropbox se a vuelto hoy en día una de las herramientas más imprescindibles para cualquier negocio. Esta pequeña startup ha conseguido que todos mantengamos nuestros archivos en la nube y podamos disponer de ellos de una forma sincronizada y en cualquiera de nuestros dispositivos (android, ios, mac, pc linux, etc...). Hace un tiempo lanzo una API en su espacio para desarrolladores para poder acceder a los archivos y, lo más importante, crear aplicaciones sobre su servicio de almacenamiento en la nube.
Es un servicio, que permite la creación de un mundo infinito de aplicaciones, que aunque se puede hacer con otro tipo de servicios, el api de dropbox nos ofrece una facilidad inigualable a la hora de desarrollarlo.
La API cuenta con SDKs para iOS, Android, Python, Ruby y Java. Las aplicaciones creadas deberán ser registradas en Dropbox para obtener un App Key, los usuarios concederán acceso a las aplicaciones de forma centralizada desde la propio web de Dropbox. En principio todas las aplicaciones que desarrollemos accederán a un carpeta dedicada, sólo determinadas aplicaciones aprobadas y revisadas por Dropbox podrán solicitar permisos para acceder a todos los ficheros del usuario. Se podrá buscar, descargar y subir ficheros. Las peticiones REST API viajan por SSL para mayor seguridad
DROPBOX API BACKUP PostgreSQL PYTHON
Hoy les voy a dejar un ejemplo de para hacer un backup automático de nuestra base de datos MySQL con dropbox. Realmente nos va a servir no solo para respaldar la base de datos sino para cualquier archivo que necesitemos respaldar en el Dropbox.
Este fichero lo hago con el fin de poder respaldar de manera automática la base de datos de un sistema en producción, y así ahorrarse la problemática de estarlo haciendo a diario o semanal, y tener que descargar directamente a nuestra computadora la base de datos. Sino que simplemente un Cron y listo.
Python Wrap
backup.py
Lo primero que necesitamos es registrar nuestra aplicación en dropbox https://www.dropbox.com/developers/apps/create, luego necesitamos tener instalado gzip, para comprimir archivos o cualquier otro comando que necesitemos. y este es el archivo:
import os, datetime from DropboxWrap import DropboxTerm # app key y secret de la pagina de desarolladores de dropbox app_key = '' app_secret = '' #Datos para conectarnos a la base de datos username = "" password = "" hostname = "" database = "" today = datetime.datetime.today() #Le damos nombre a la base de datos filename = database+"-"+today.strftime("%d-%b-%Y-%H:%M:%S.sql") filename_gz = filename+".gz" #instanciamos la clase d = DropboxTerm(app_key,app_secret) #comprobamos si esta el usuario logeado o no if d.is_logged() == False: d.login() #ejecutamos el comando y comprimimos el resultado, para que sea más ligero el archivo os.popen("mysqldump -u %s --password='%s' -h %s -e --opt -c %s | gzip -c > '%s'" % (username, password, hostname, database, filename_gz)) #montamos el archivo resultante en el dropbox print d.put(filename_gz,'/database/'+filename_gz) #listo
Ya lo que nos quedaría es ejecutarlo por primera vez, para autorizar el acceso a la aplicación y configurar el cronjob y listo.
Source en GITHUB
No hay comentarios:
Publicar un comentario