Share files from command line with transfer.sh: a simple cheatsheet

Transfer.sh is a website that helps users to share files from the command-line an efficient way.
It won’t required any additional software to work except cURL.

If your linux distribution doesn’t have cUrl (unlikely!), you can install it with

sudo apt install curl

The service is free and allows users to upload files up to 10 GB, that are deleted automatically from server after 14 days.

Here a brief cheatsheet.

Upload

$ curl --upload-file ./hello.txt https://transfer.sh/hello.txt

Encrypt & upload

$ cat /tmp/hello.txt|gpg -ac -o-|curl -X PUT --upload-file "-" https://transfer.sh/test.txt

Download & decrypt

$ curl https://transfer.sh/1lDau/test.txt|gpg -o- > /tmp/hello.txt

Upload and check with virustotal

$ curl -X PUT --upload-file nhgbhhj https://transfer.sh/test.txt/virustotal

Bash/Zsh alias

Add  to .bashrc or .zshrc:

transfer() {
# write to output to tmpfile because of progress bar
tmpfile=$( mktemp -t transferXXX )
curl --progress-bar --upload-file $1 https://transfer.sh/$(basename $1) >> $tmpfile;
cat $tmpfile;
rm -f $tmpfile;
}

alias transfer=transfer

Usage:

$ transfer test.txt

Comments