Transfert de fichiers efficace et optimisé de Dropbox vers SFTP

Dans le précédent épisode de la série Re-loadit, j’ai présenté un exemple utilisant le Robot /dropbox/store. Cette fois, je veux importer des fichiers depuis mon Dropbox personnel. Pour rester dans le thème Dropbox, c’est donc au tour du Robot /dropbox/import de briller !
Le Robot /dropbox/import
Contrairement au Robot /dropbox/store, le Robot /dropbox/import vous permettra d’importer des répertoires directement depuis votre stockage Dropbox, afin de les transmettre à d’autres Steps au sein d’une Assembly.

Les images comptent parmi les types de fichiers les plus populaires stockés sur Dropbox. À titre personnel, en dehors de mes factures, j’utilise surtout Dropbox pour stocker diverses images afin de les partager avec ma famille et mes amis. Cela dit, Dropbox n’est pas toujours le service idéal. Personnellement, je me sens plus à l’aise en stockant certains de mes fichiers sur mon propre serveur SFTP, d’autant que je commence à manquer d’espace sur Dropbox et que mon budget étudiant ne me permet pas de m’offrir un abonnement Dropbox 😉
Pour cet exemple, je vais donc vous présenter une Assembly qui me permet de déplacer les images de l’un de mes dossiers Dropbox vers mon serveur SFTP, qui tourne sur mon propre Raspberry Pi. En plus, je veux réduire la taille de ces images, car la carte SD de mon Raspberry Pi ne fait que 8 GB.
Pour les curieux, voici à quoi ressemble le dossier Dropbox qui contient les images qui m’intéressent. Il mélange différents fichiers multimédias, il me faudra donc aussi un moyen d’écarter les fichiers indésirables.

Voyons précisément comment construire une telle Assembly. N’hésitez pas à reproduire la démarche avec moi !
Créer l’Assembly
Pour cette tâche, je vais utiliser quatre Robots :
- Le Robot /dropbox/import pour récupérer ce dont j’ai besoin dans mon dossier media/ ;
- Le Robot /file/filter pour écarter tous les types de fichiers indésirables ;
- Le Robot /image/optimize pour réduire la taille des images importées ; et
- Enfin, le Robot /sftp/store (English), qui me permettra de tout stocker sur mon propre serveur SFTP.
Cela fait un bon nombre de Robots pour des tâches assez complexes. Découvrez ci-dessous le Template que j’ai créé :
{
"steps": {
"imported": {
"robot": "/dropbox/import",
"result": true,
"credentials": "my_dropbox_credentials",
"path": "media/"
},
"filtered_images": {
"use": ["imported"],
"robot": "/file/filter",
"result": true,
"accepts": [["${file.mime}", "regex", "image/(jpeg|png|svg|tiff)"]]
},
"optimize": {
"use": ["filtered_images"],
"robot": "/image/optimize",
"priority": "compression-ratio",
"progressive": false,
"preserve_meta_data": false,
"fix_breaking_images": true
},
"exported": {
"use": ["optimize"],
"robot": "/sftp/store",
"credentials": "my_sftp_credentials",
"path": "/home/pi/sftp/images/${file.original_basename}.${file.ext}"
}
}
}
Comme d’habitude, je préfère conserver en sécurité mon jeton d’accès Dropbox et mes informations
SFTP (comme le nom d’hôte) dans la section
Informations d’identification de Template de Transloadit.
Dès le premier Step, le Robot
/dropbox/import importera tous les fichiers indiqués par le paramètre path, ici
mon dossier media/. Ce dossier contient un certain nombre d’images, mais aussi quelques fichiers
divers, comme des documents et des fichiers mp3.
Tous ces fichiers ne sont pas utiles, j’utilise donc le Robot /file/filter pour écarter tout ce qui n’est pas au format jpeg, png, svg ou tiff. L’impressionnant Robot /image/optimize prend ensuite ces images et aide à réduire leur taille tout en préservant leur qualité. Enfin, j’exporte les résultats vers mon serveur SFTP, où ils peuvent vivre confortablement sur mon Raspberry Pi.
Les résultats
Après une vérification rapide du système de fichiers de mon Pi, les résultats sont prometteurs ! Toutes les images présentes dans mon dossier media/ sur Dropbox se trouvent désormais aussi sur mon serveur SFTP. Et cerise sur le gâteau, j’ai aussi réussi à réduire la taille de certains fichiers ! 😍

Restez à l’écoute pour le prochain épisode de notre série Re-loadit !