Transfer.sh : partager des fichier en ligne de commande
Avez-vous déjà eu envie de récupérer facilement un fichier depuis une console ? Pour ma part, cela m’est arrivé. Car récupérer un fichier en console accessible depuis un portail Web, ce n’est pas simple ! C’est là qu’intervient une plateforme Web nommée Transfer.sh. Celle-ci vous permet d’uploader simplement des fichiers sur un serveur tiers, en toute confiance, et de récupérer les fichiers sur un autre poste en console ou depuis un navigateur.
Les caractéristiques de Transfer.sh

Le service est gratuit depuis 4 ans et un partenariat est en cours avec Storj Labs. Les fichiers envoyés sont stockés pendant 14 jours et sont cryptés. Vous pouvez envoyer jusqu’à 10Go de données (cela fait une bonne marge). De plus, le service est Open Source et le code est accessible sur GitHub.
Transfer.sh s’utilise de différentes manières correspondants à différentes problématiques. Nous allons commencer en douceur avec une utilisation simple.
Upload d’un fichier simple avec un CURL
Voici la syntaxe :
$ curl --upload-file [chemin du fichier] https://transfer.sh/[url souhaitée]
Voici un exemple :
$ curl --upload-file ./IndexController.php https://transfer.sh/index.php
J’envoie un fichier nommé IndexController.php présent dans le répertoire courant. Le fichier est envoyé au serveur transfer.sh et je souhaite que la fin de l’URL de téléchargement du fichier soit index.php
Voici le résultat obtenu :

Le serveur Transfer.sh a bien reçu le fichier et en réponse, celui-ci transmet l’URL d’accès au fichier.
Upload d’un fichier avec PowerShell (Windows)
Il n’y a pas que le monde de Linux qui existe, vous pouvez aussi avoir besoin d’uploader un fichier avec Windows. Pour cela, il faut utiliser la console PowerShell et suivre cette syntaxe :
invoke-webrequest -method put -infile [chemin du fichier] https://transfer.sh/[url souhaitée]
Voici un exemple :
invoke-webrequest -method put -infile IndexController.php https://transfer.sh/index.php
Voici le résultat obtenu :

Le service Web a bien récupéré le fichier et il vous renvoie l’URL pour le récupérer (la ligne correspondante est en surbrillance).
Comme vous le savez, je suis très pointilleux sur ce qui concerne la protection des données – encore plus quand elles sont personnelles. C’est la raison pour laquelle je vous encourage à toujours envoyer des données cryptées, peu importe leur nature. Vous gagnerez en sérénité. Grâce à ce service Web et aux fonctions disponibles avec la console, vous pouvez crypter vos fichiers en amont et transmettre des données protégées à Transfer.sh.
Vous pouvez soit crypter vos données avec GPG soit avec Keybase.io.
Envoyer des fichiers cryptés
cat [chemin du fichier]|gpg -ac -o-|curl -X PUT --upload-file "-" https://transfer.sh/[url souhaitée]
Cela marche aussi avec un backup MySQL, par exemple :
mysqldump --all-databases|gzip|gpg -ac -o-|curl -X PUT --upload-file "-" https://transfer.sh/database.sql
En lançant cette commande, GNU Privacy Guard démarre et vous demande une passphrase (la clé de cryptage de votre fichier).

Cliquez sur OK après avoir saisi votre passphrase. A présent, GPG vous demande une confirmation de passphrase. Votre fichier est ensuite envoyé sur la toile en toute sécurité.
Analyse anti-virus de Transfer.sh

Le service permet aussi de vérifier la présence de malwares et virus. Le système peut analyser les fichiers et vous proposer un rapport de son analyse. La plateforme se sert de VirusTotal et Clamav comme outil de détection.
Pour utiliser ce service supplémentaire, c’est assez simple. Au niveau de l’adresse souhaitée, vous devez rajouter /virustotal pour un scan avec cet outil ou /scan pour utiliser Clamav. Voici un petit exemple :
$ curl -X PUT --upload-file ./mes_impots.docx https://transfer.sh/impots.docx/scan
$ curl -X PUT --upload-file ./invitation.docx https://transfer.sh/invitation.docx/virustotal
Maintenant que vous savez uploader des fichiers, il est temps de voir comment les récupérer. Vous avez deux solutions :
Récupération avec votre navigateur Web

Il suffit de copier le lien généré par Transfer.sh, puis de le coller dans la barre d’adresse de votre navigateur favori.
Pour récupérer le fichier, il vous suffit simplement de cliquer sur le bouton Download.
Récupération avec CURL
Vous pouvez aussi récupérer votre fichier directement en console avec CURL. Voici la syntaxe :
curl https://transfer.sh/[url] -o [nom du fichier de destination]
Voici un exemple :
curl https://transfer.sh/wbHTd/index.php -o index.php
CURL récupère le fichier présent à l’adresse donnée, et le place dans le répertoire courant avec le nom index.php.
Récupérer et décrypter un fichier
Pour décrypter un fichier protégé en amont, il faut réutiliser GPG. Voici un exemple :
curl https://transfer.sh/AOgcy/image.jpg|gpg -o- > ./my_image.jpg
La commande va télécharger le fichier, puis le décrypter et l’enregistrer sous le nom my_image.jpg.
Installation de Transfer.sh sur un serveur dédié

Si toutefois vous doutez de la sécurité d’un tel service ou que vous avez besoin d’un niveau de sécurité plus élevé, vous avez la possibilité d’installer cette solution sur votre serveur. L’équipe en charge du développement propose une version sous Docker facilement installable !
docker run --publish 8080:8080 dutchcoders/transfer.sh:latest --provider local --basedir /tmp/
Si vous vous demandez sur quelle techno cela fonctionne, petit SPOILER : c’est du GO.
Conclusion

Voici un nouveau service à rajouter dans votre boîte à outils… vous savez, ceux que l’on trouve bien utiles quand tout part en vrille (serveur HS, problème de certificat HTTPS, vérification de licence et j’en passe…). Vous trouverez sur leur documentation GitHub de nombreuses options supplémentaires. Et leur site comporte des cas d’utilisations supplémentaires.
👉 Et vous ? Comment faites-vous pour récupérer un fichier depuis une console ?
Si vous aimez votre terminal / votre console, je vous invite à lire cet article qui va vous permettre de rendre plus cool / sexy votre outil de travail : Oh My Zsh.
Enfin, si vous maudissez votre terminal à chaque fois qu’il vous manque une lettre sur une commande, The Fuck est le correcteur automatique qu’il vous faut !
REDUISEZ VOTRE IMPACT... PARTAGEZ CET ARTICLE !
CLIQUEZ SUR LE BOUTON "JE PARTAGE" : LE POST CI-DESSUS EST AUTOMATIQUEMENT COPIÉ.
A PRESENT, RENDEZ-VOUS SUR LINKEDIN ET PARTAGEZ CE CONTENU SUR VOTRE PROFIL !
