Subir archivos a Amazon desde Debian o Raspbian
Si disponemos de una cuenta Amazon Prime tendremos la posibilidad de subir fotos a amazon photos sin límite.
Esto nos ofrece una buena posibilidad de tener un backup de todas nuestras fotos en la nube además de disponer de nuestra copia en local.
Amazon tiene sus propias aplicaciones para hacerlo pero si queremos automtizar el proceso podemos hacer uso de una sencilla aplicción desarrollada en Pyton.
Su nombre es Drivesink y es de código abierto.
El sistema no es perfecto y tiene sus limitaciones, como por ejemplo el no poder subir imágenes duplicadas. De todas maneras si mantenemos nuestra libreria de fotos optimizada y sin duplicados se trata de una gran opción. Más aún cuando otras aplicaciones similares han dejado de funcionar (como la archiconocida rclone).
El primer paso será instalar y actualizar pyton-pip, un gestor de paquetes para obtener y administrar aplicaciones Pyton.
sudo apt-get install python-pip
sudo pip install –upgrade pip
Acto seguido instalaremos los módulos requests y requests-toolbelt:
pip install requests
sudo pip install requests-toolbelt
Ahor ya estamos preparados para descargar Drivesinc:
curl -O https://github.com/caseymrm/drivesink/blob/master/drivesink.py
una vez descargado le asignaremos permisos de ejecución:
sudo chmod +x drivesink
Ahora accederemos a la dirección
https://drivesink.appspot.com/config
desde nuestro ordenador o Raspberry y copiaremos el token que nos genera la página en un fichero de texto que podemos llamar drivesink a secas y que por comodidad ubicaremos en el mismo path que drivesink.py
Una vez esto ya tenemos drivesink preparado para funcionar, solo lo hemos de llamar con esta instrucción:
sudo ./drivesink.py -c drivesink upload /origen /destino
Los parámetros de la llamada pueden ser:
./drivesink.pi -h Show help
./drivesink.pi -e tipos de archivo que queremos subir (por defecto todas las imágenes). Las diferentes extensiones las separaremos con una coma
./drivesink.pi -c config file
./drivesink.pi -d drivesync url
Cabe recordar que esta aplicación sube los archivos locales a Amazon, no se trata de una sincronización ya que cualquier duplicidad para el proceso.
Si queremos automatizar esto en un comando podemos crear un shell script que podemos llamar sincronizaamazon.sh que efectue la subida de una carpeta:
#!/bin/bash
#pathconfigfile contiene la ruta hasta el archivo de token
pathconfigfile=»drivesink»
#pathremoto contiene el directorio raiz de las fotos en Amazon Drive
pathremoto=»/FotosCasa»
#pathlocal contiene el directorio raiz de las fotos en local
pathlocal=»/media/TheLibDisk/fotos»
pathcompletolocal=$pathlocal»/»$1
pathcompletodestino=$pathremoto»/»$1
echo $pathcompletolocal
echo $pathcompletodestino
sudo ./drivesink.py -c $pathconfigfile upload $pathcompletolocal $pathcompletodestino
Que llamaríamos así:
./sincronizaamazon.sh «FotosBoda»