[Bash] Subir ficheros a Dropbox desde la terminal

controlar directorios dropbox desde bashEn uno de los Ăşltimos experimentos que he estado haciendo se me planteĂł la necesidad de subir imĂĄgenes a una cuenta de Dropbox desde una mĂĄquina en la que no me “interesaba” montar el cliente de Dropbox (sĂłlo quiero subir un fichero cada cierto, nada de tener mĂĄs de la cuenta en ese ordenador ;))

Por fortuna, Andrea Fabrizi (grazie Andrea) tuvo la misma necesidad y nos ha regalado la forma de conectar, utilizando cUrl, contra la API de Dropbox.

Pasa, te cuento cĂłmo hacerlo.

Preparando lo necesario

Aunque el funcionamiento estĂĄ muy bien explicado por el autor, os comentarĂŠ aquellos pasos que puedan resultar algo mĂĄs “truculentos” (la primera vez que se intenta).

Lo primero que tienes que hacer es descargar el script del GitHub de Andrea.

Dale permisos de ejecución al fichero descargado (botón derecho > Propiedades o un chmod a+x sobre Êl) y lånzalo desde la terminal.

Ejemplo de uso

La sintaxis para subir un fichero es

./dropbox_uploader.sh upload
/tmp/miFichero.jpg
/Public/images/claves.jpg

Donde

  1. upload es el comando a lanzar de los varios (delete, mkdir, list, …) que admite el script; en este ejemplo subiremos un fichero a Dropbox
  2. /tmp/miFichero.jpg es el fichero de mi disco duro (local) que quiero subir a Dropbox
  3. /Public/images/claves.jpg he optado por subirlo el fichero a la carpeta /Public/images de mi Dropbox y renombrarlo como claves.jpg

La primera vez…

…vez que lancemos el script nos pedirĂĄ que nos conectemos a una direcciĂłn web

This is the first time you run this script.
Please open this URL from your Browser, and access using your account:

-> https://www2.dropbox.com/developers/apps

Introduce en cualquier navegador la url proporcionado por el script y haz login en tu cuenta de Dropbox.

NOTA: si no has creado antes una aplicaciĂłn utilizando la API de Dropbox, acepta los tĂŠrminos y condiciones 🙂

Crea una aplicacion introduciendo los datos que te ofrece el script; en mi caso tengo

App name: MyUploader27277479
App type: Core
Permission type: App folder or Full Dropbox

NOTA: la diferencia entre App folder y Full Dropbox es que el primero sĂłlo permite acceder a los directorios que cuelgan de /Aplicaciones/MyUploader27277479 (directorio asignado a tu aplicaciĂłn de nombre  MyUploader27277479) mientras que el segundo (Full Dropbox) te da control total de cualquier directorio de tu cuenta. A mi me interesa el segundo porque necesito acceso a la carpeta Public de Dropbox desde IFTTT 🙂

En el formulario web, los datos quedan del siguiente modo.

crear aplicaciones dropbox

Una vez creada, podrĂĄs aĂąadir una descripciĂłn del programa e incluso, si lo deseas, personalizar el icono para que te resulte mĂĄs fĂĄcil localizarla (si creas muchos aplicaciones para Dropbox jeje).

Realmente lo que nos interesa es

obtener clave secreta aplicaciĂłn dropbox

que deberemos introducirlo en el script para que pueda acceder sin problemas a Dropbox

acceder dropbox desde cli linux

NOTA: observa que he utilizado f para acceso Full a Dropbox que es lo que me interesa.

Como paso final y, para permitir acceso al script a nuestra cuenta de Dropbox, tendremos que volver a introducir otra url en el navegador

habilitar app para acceder dropbox

y darle permisos

subida ficheros desde la lĂ­nea de comandos

Una vez hecho, no olvides pulsar Enter en la ventana de la terminal.

Se acabĂł

Prometo que todo este “jaleo” sĂłlo se harĂĄ la primera vez que intentes subir un fichero; a partir de ese momento podrĂĄs utilizar cualquier comando contra tu cuenta de Dropbox de los que permite el script de Andrea Fabrizi sin necesidad de configurar nada “gracias” a que guardarĂĄ toda la informaciĂłn en el fichero $HOME/.dropbox_uploader.

Con este script, un bonito cron e IFTTT consigo evitarme algún que otro quebradero de cabeza con el firewall y el SMTP de mi instituto ;).

ÂżQuĂŠ utilidad se te ha pasado a ti por la cabeza tras leer el artĂ­culo? Estamos deseando gozar con una “lluvia de ideas” ÂĄAnĂ­mate a compartir lo que estĂĄs pensando!

11 comentarios en “[Bash] Subir ficheros a Dropbox desde la terminal

  1. Mi problema con bash es con las carpetas. No consigo mover un archivo que contenga espacios dentro de otra carpeta. No me obedece aunque si no está dentro del script bash la orden funcione perfectamente, pero bueh…

  2. Muy buena José, siempre es bueno tener alternativas de uso a los servicios “más necesarios”.
    Por cierto, no había visto que ya estás de nuevo más activo en tu blog, me alegra. Saludos.

  3. Pingback: Bitacoras.com
    • Seguramente sí, Santiago.

      Mi proyecto era para un “servidor” Linux y había implementado la funcionalidad en Bash por lo que me vino bien.

      Sería cuestión de buscar algo parecido en Python; si alguien encuentra algo se le agradecerá que deje un comentario.

      Suerte y un saludo

  4. Guillermo dijo:

    bpmatec@ninefourubuntu:/home/ARIS$ sudo ./dropbox_uploader.sh upload logfiles.zip /Public/logfiles.zip
    Error loading data from /home/bpmatec/.dropbox_uploader…
    It is recommended to run ./dropbox_uploader.sh unlink
    bpmatec@ninefourubuntu:/home/ARIS$

    El unlink no funciona, que hago ahora? :/

    Saludos,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s