[HowTo] Integrar Box.com a Linux

El otro día Pavloco nos mostró como integrar mejor a Dropbox en Xfce, y aunque no soy alguien fanático de las «nubes» (sobre todo por mi conexión de Internet…), recordé que me había ganado unos lindos 50GB en Box.com por usar un Android LG  Me puse a investigar un poco de cómo integrar mejor a Box en Linux, y ahora vengo a enseñarles a quienes estén interesados.

Debo aclarar primero, que tampoco vamos a poder competir lado a lado con la poderosa integración que tiene Dropbox en Linux, ya que en el caso de Dropbox es un cliente nativo (o un daemon, no estoy seguro), pero para Box usaremos algunos trucos que nos permitirán utilizar funciones básicas, como subir/bajar y revisar archivos para uso personal.

Bien, empecemos. Lo primero que necesitamos, en instalar el paquete davfs2 en nuestra distribución, pues es la parte fundamental de todo.

En Debian ejecutaríamos esto (como root, por supuesto):

apt-get install davfs2

Para Arch sería:

pacman -S davfs2

En Fedora

yum install davfs2

Entre otras… Lo siguiente que hay que hacer, será crear la carpeta donde montaremos nuestra cuenta, para acceder a ella. Por ejemplo, yo creé una en mi Home, llamada «Box» (sin comillas). Ahora deberemos editar el archivo /etc/fstab, añadiendo la siguiente línea:

https://www.box.com/dav /home/usuario/Box davfs rw,user,noauto 0 0

Cambiando «usuario» por su usuario, o la ruta entera si crearon la carpeta en otra parte. Esta línea sólo le indica al sistema, que monte el sistema DAV de Box.com en la carpeta que queremos, y que le de permiso a cualquier usuario de abrirla, así como Leer y escribir archivos en ella.

Sin embargo, no podrá montarla si no le damos nuestro usuario y contraseña de Box  Así que en nuestra Home crearemos una carpeta llamada .davfs2 (el «.» es para que esté oculta), la cual contendrá las configuraciones. Luego hay que copiar los archivos «davfs2.conf» y «secrets» que están en /etc/davfs2/, y meterlos en la carpeta que recién creamos.

Esto podemos hacerlo rápidamente con estos comandos:

mkdir ~/.davfs2/

sudo cp /etc/davfs2/davfs2.conf /home/usuario/.davfs2/

sudo cp /etc/davfs2/secrets /home/usuario/.davfs2/

sudo chown -R usuario /home/usuario/.davfs2/           ## Cambien "usuario" por su nombre de usuario

Procedemos a abrir ambos archivos con nuestro editor de texto favorito. En «davfs2.conf» buscamos la línea «#use_locks 1» y la descomentamos (retiramos el #), y nos aseguramos de que el número que está a su lado sea «0«. Es decir, que quedaría así:

use_locks 0

Ahora editaremos el archivo «secrets«, y añadiremos la siguiente línea al final:

https://dav.box.com/dav user@email.com password

Claro, coloquen su correo y contraseña  Sólo quedaría probar si se monta, así que abriremos una terminal y escribiremos en ella:

mount /ruta/a/la/carpeta/

Si no da ningún problema, pues estaremos listos  Para probarlo podrían copiar un archivo ligero (1MB o menos?) a la carpeta dónde montaron Box.

En caso de que se presenten errores, los solucionaremos de su respectiva forma:

  1. /sbin/mount.davfs: program is not setuid root. Éste se soluciona con el comando: sudo chmod u+s /sbin/mount.davfs
  2. /sbin/mount.davfs: user  must be member of group davfs2. Se arregla añadiendo nuestro usuario al grupo davfs2, ejecutamos: sudo gpasswd -a usuario davfs2, donde «usuario» es tu usuario.
  3. /sbin/mount.davfs: / is the home directory of user kernoops. Se arregla así: sudo echo "ignore_home kernoops" >> /etc/davfs2/davfs2.conf

Esos son los posibles errores. Si les da algún otro error, no olviden ponerlo en los comentarios 

Acción personalizada para Thunar

Aprovechando que estaba en Xfce, se me ocurrió probar si con comandos personalizados podía subir cualquier carpeta a Box desde Thunar. Y si que funciona. Aunque no muestre una barra de progreso para saber cuánto falta, si genera notificaciones para avisar que ya subió los archivos seleccionados.

Subir a Box

Notificación de Box

Para usarla, abriremos Thunar, e iremos a Editar>Configurar acciones personalizadas. Hacemos click en Añadir (el símbolo de +) y rellenamos los espacios de esta manera:

Pestaña «Básico«:

Nombre: Subir archivo(s) a Box
Descripción: Sube los archivos seleccionados a Box.com
Comando: notify-send "Subiendo a Box" "Subiendo %F a tu cuenta de Box..." && cp -r %F ~/Box/ && notify-send "Listo" "Los archivos ya han sido subidos a tu cuenta de Box"

Básico

Pestaña «Condiciones de apariencia«: marquen todas las casillas.

Condiciones de apariencia

Guardamos y listo, podemos subir rápidamente archivos a Box 

Sincronizar carpetas de forma manual

Esto es algo que podemos hacer con el comando rsync, sin embargo algunos preferimos hacer esto desde una interfaz cómoda, así que instalaremos Unison, un frontend para rsync.

Será cuestión de instalar los paquetes unison y unison-gtk. En Debian sería así:

apt-get install unison unison-gtk

Luego, procedemos a buscarlo en el menú (categoría Accesorios) y lo abrimos. Nos saltará una ventana para configurar un «perfil«. Unison usa perfiles para cada carpeta que quieras sincronizar.

Entonces, crearemos uno. En «Profile Name» y «Description» podemos colocar lo que queramos. En tipo de sincronización, lo dejaremos en «Local«. Luego nos toca elegir las dos carpetas, la que está en Box y la que vamos a sincronizar.

Unison

Una vez que esté listo, simplemente abrimos el perfil y Unison comparará las dos carpetas. Luego sólo debemos hacer un click en «Go» y comenzará a sincronizar.

Nota: si borramos algo en una carpeta, por defecto Unison querrá borrarlo en la otra. Para cambiarlo sólo hacemos click en  el archivo y luego presionamos «Right to left» o «Left to right» dependiendo de donde esté el archivo original.

Si bien es posible realizar sincronización automática con Unison o RSync, es algo complicado lograr un resultado óptimo para cada quien.

Bueno, eso es todo. Son opciones algo limitadas, pero si queremos algo mejor tendríamos que usar directamente la API de Box, ya que no hay cliente nativo para Linux (y si lo hubiera sería de pago, como el de Mac y Windows).

¿Qué les parece? ¿Utilizan alguna otra nube como Dropbox, Wuala, SpiderOak, etc? ¿No les gustan mucho las nubes? Opinen 