196 - Compartir archivos con un código QR

196 - Compartir archivos con un código QR

¿Como compartir archivos con un código QR? En este podcast te hablo de un complemento para Nautilus, Nemo y caja para comparitr archivos con un código QR

1:25
-3:15

En el episodio 190 del podcast te hablé sobre como podías copiar archivos de Linux al móvil. En aquel artículo te hablaba de una herramienta que te permitía hacer esta operación directamente desde el terminal, a partir de un código QR. Sin embargo, esto tiene un claro inconveniente para los que no quieren lidiar con el terminal. Y todo a pesar de que la solución de compartir archivos con un código QR me pareció una solución muy brillante.

A partir de aquí, y siguiendo con este proyecto de doce meses doce aplicaciones Open Source, se me ocurrió combinar las dos ideas. Por un lado dar una interfaz para que los usuarios que no quieran recurrir al terminar puedan compartir archivos con un código QR, y por otro lado hacerlo de forma sencilla, directamente desde el gestor de archivos Nautilus, Nemo o Caja. Simplemente con el botón derecho del ratón y accediendo al menú contextual.

código qr

Compartir archivos con un código QR

En que ando metido

Como todos los jueves, lo primero es darte la paliza para que sepas en que ando metido, y tengas una idea de lo que encontrarás las próximas semanas en atareao.es.

Artículos

Respecto al tema de los artículos, decirte que la semana pasada tenía que haber publicado un nuevo capítulo del tutorial sobre Ansible, y no lo hice, así que esta semana será cuando te hable sobre los bloques en Ansible.

Por otro lado continuaré con el tutorial sobre diálogos para scripts. La semana pasada publiqué la primera de las herramientas dialog para crear diálogos en el terminal. Esta semana le toca a la segunda de las herramientas que tienes a tu alcance. Se trata de una herramienta mucho mas sencilla que dialog, pero como contrapartida tiene menos potencial, y como ventaja en completamente gráfica, con lo que seguro será de mas utilidad si quieres trabajar con usuarios que no se quieran enfrentar al terminal.

Aplicaciones

Respecto a las aplicaciones, una vez terminada la aplicación que te comentaré mas adelante, tengo en vistas dos aplicaciones nuevas. Una de ellas, ya he comenzado a trabajar sobre ella, y es, ni mas ni menos, que una tienda de aplicaciones AppImage.

Por otro lado, estoy retomando mi trabajo con las extensiones, de GNOME Shell, para darle mas características a Tasker.

¿Como compartir archivos con un código QR?

¿Como se llama esta herramienta? nautilus-sharefile, y también disponible para Nemo, el gestor de archivos de Linux Mint, y Caja, el gestor de archivos de Mate.

La herramienta que presenté hace 6 capítulos del podcast, era muy interesante, porque no necesitabas que el cliente necesitara tener instalada ninguna aplicación. Simplemente tenía que escaner el código QR y ya estaba resuelto. Sin embargo, presentaba dos graves inconvenientes, al menos desde mi punto de vista.

  • Tenías que recurrir al terminal, lo cual es por un lado incómodo, en tanto en cuanto, necesitas abrir un terminal, buscar el archivo, ejecutar el comando que genera el código QR, etc. Y por otro lado, para los que no están habituados al terminal, o simplemente no lo quieren utilizar no es una buena solución.
  • Lo haces con protocolo HTTP, un protocolo que no es seguro, lo que dependiendo de donde te encuentres puede ser un verdadero problema. Sobre todo si estás en una red pública.

En este sentido, se me ocurrió dar una solución a estos dos problemas, por un lado dando una interfaz gráfica para que cualquiera la pudiera utilizar, y por otro utilizando el protocolo HTTPS para mejorar la seguridad.

Instalación

Antes de nada, indicarte que esta solución está disponible solo para Ubuntu 20.04 y superior, Linux Mint 20 y superior, etc. Básicamente por el problema que me ha llevado de cabeza en los últimos tiempos de Python 3.

La instalación para Nautilus es la siguiente,

sudo add-apt-repository ppa:atareao/nautilus-extensions
sudo apt install nautilus-sharefile
nautilus -q

La instalación para Nemo es la siguiente,

sudo add-apt-repository ppa:atareao/nemo-extensions
sudo apt install nemo-sharefile
nemo -q

La instalación para Caja es la siguiente,

sudo add-apt-repository ppa:atareao/caja-extensions
sudo apt install caja-sharefile
caja -q

Una vez instalada, simplemente abre tu gestor de archivos, Nautilus, Nemo o Caja, y selecciona el archivo que quieras compartir. Ha clic con el botón derecho del ratón, y encontrarás un nueva opción Compartir archivo.

Al hacer clic sobre esta opción te aparecerá un cuadro de diálogo que te muestra un código QR. Cuando escanees ese código QR con tu móvil, te llevará a una página web para descargar el archivo. Ojo, porque te dirá que se trata de una página que no es confiable. Esto es así, porque el certificado incluido es un certificado autofirmado, no hay otra opción.

Bajo el capó

¿Como está hecha esta extensión? Como te puedes imaginar, esta extensión está implementada en Python 3, por supuesto.

¿Como funciona? Simplemente, cuando haces clic en la opción compartir archivo del menú contextual, levanta un servidor web con Flask, con un certificado autofirmado, en el que sirve el archivo que quieres compartir.

Cuando cierras la ventana se cierra ese servidor web y trabajo resuelto. Sencillo, sencillo.

Algunos inconvenientes

Se trata de una primera versión muy sencilla de esta complemento para Nautilus, Nemo y Caja, y como primera versión, tiene algunas deficiencias, que por supuesto pueden ser solucionadas. ¿Porque no he resuelto esas deficiencias? Puede ser pereza, o simplemente, quería ver si te gustaba la aplicación para dedicarle mas tiempo.

Así algunos inconvenientes son los siguientes,

  • Siempre sirve con protocolo HTTPS esto por un lado es una ventaja, pero por otro lado es un inconveniente, en tanto en cuanto siempre tienes que aceptar que estás trabajando con un certificado autofirmado.
  • Solo trabaja con el puerto 9999. Esto debería ser configurable para evitar que tengas alguna otra aplicación trabajando precisamente en ese puerto. Incluso, sería recomendable que ese puerto fuera aleatorio, para dificultar el trabajo a los amantes de lo ajeno.
  • La dirección para compartir es fija <IP>:9999/download. Es fácil modificar esta opción, para que en cada momento se genere una url distinta. De nuevo se trata de incomodar a los amantes de lo ajeno.

Sin embargo, como te decía, se trata de cuestiones menores y que son fácilmente solucionables. Espero tus comentarios, para darle mas salida a esta herramienta.

Otra alternativa

Otra solución que también tiene una pintaza es la propuesta por Rafa del podcast Leña al mono que es de Goma de la fantástica y maravillosa red de podcasts, a la que también pertenece este.

Se trata de un sencillo widget que al arrastrar cualquier archivo sobre él directamente genere y muestre el código QR. Por supuesto, al hacer esto tendría que levantar el servidor web que sirva el archivo o incluso el directorio…

La verdad, es que he estado muy, pero que muy tentado de hacerla, pero voy a esperar a los comentarios del podcast, para meterme con ello. A ver que te parece a ti.

Una vez implementado este complemento, lo cierto es que hacer esta alternativa es algo realmente sencillo…


Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.

Imagen de portada de Markus Winkler en Unsplash

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *