Ce n'est pas nouveau, il existe une tonne de sites Internet permettant d'envoyer des fichiers et de les partager. Cette fois-ci, découvrons comment partager un fichier en exécutant une ligne de commande, en utilisant l'excellent service Transfer.sh.

Transfer.sh est un site Web laissant à ses utilisateurs la possibilité d'envoyer des fichiers dans le but de les partager avec d'autres internautes. Cependant, il se démarque des autres services de ce genre : l'envoi peut se faire via une simple ligne de commande !

Effectivement, un simple appel curl permet d'envoyer votre fichier sur les serveur de Transfer.sh. Ces fichiers sont conservés 14 jours, et le poids du fichier peut atteindre jusqu'à 10 Go !

L'utilisation est complètement gratuite, le code source de Transfer.sh est d'ailleurs disponible sur Github.

Voici la ligne de commande à exécuter sur votre poste pour envoyer un fichier avec Transfer.sh :

curl --upload-file kitty.jpg https://transfer.sh/kitty.jpg

En retour, Transfer.sh vous donnera le lien d'accès au fichier :

https://transfer.sh/ZGUAO/kitty.jpg

Efficace, non ? :)

Transfer.sh met à votre disposition plusieurs cas d'usages, comme l'upload de plusieurs fichiers, le chiffrement du fichier avant envoi, l'envoi du lien par mail après le transfert, etc...

Sous Linux, vous pouvez ajouter un alias à votre .bashrc (ou autre) pour ne pas à avoir à retenir la commande.

# Add this to .bashrc or its equivalent 
transfer() { if [ $# -eq 0 ]; then echo -e "No arguments specified. Usage:\necho transfer /tmp/test.md\ncat /tmp/test.md | transfer test.md"; return 1; fi 
tmpfile=$( mktemp -t transferXXX ); if tty -s; then basefile=$(basename "$1" | sed -e 's/[^a-zA-Z0-9._-]/-/g'); curl --progress-bar --upload-file "$1" "https://transfer.sh/$basefile" >> $tmpfile; else curl --progress-bar --upload-file "-" "https://transfer.sh/$1" >> $tmpfile ; fi; cat $tmpfile; rm -f $tmpfile; } 

# Now you can use transfer command 
$ transfer hello.txt