transfer.sh: Easy file sharing from the command line

made with <3 by DutchCoders

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

Grep pound from syslog and transfer
cat /var/log/syslog|grep pound|curl --upload-file - https://transfer.sh/pound.log

Using Keybase:

import keys from keybase

$ keybase track [them]

encrypt for recipients

$ cat somebackupfile.tar.gz | keybase encrypt [them] | curl --upload-file '-' https://transfer.sh/test.txt

decrypt

$ curl https://transfer.sh/sqUFi/test.md |keybase decrypt

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

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

Add alias to .bashrc or .zshrc:

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"; fi; cat $tmpfile; rm -f $tmpfile; }

}

$ transfer test.txt