diff --git a/README.md b/README.md index 554c47a..87621ed 100644 --- a/README.md +++ b/README.md @@ -58,76 +58,9 @@ curl -sD - --upload-file ./hello https://transfer.sh/hello.txt | grep 'X-Url-Del X-Url-Delete: https://transfer.sh/hello.txt/BAYh0/hello.txt/PDw0NHPcqU ``` -## Add alias to .bashrc or .zshrc +## Examples -### Using curl -```bash -transfer() { - curl --progress-bar --upload-file "$1" https://transfer.sh/$(basename "$1") | tee /dev/null; - echo -} - -alias transfer=transfer -``` - -### Using wget -```bash -transfer() { - wget -t 1 -qO - --method=PUT --body-file="$1" --header="Content-Type: $(file -b --mime-type "$1")" https://transfer.sh/$(basename "$1"); - echo -} - -alias transfer=transfer -``` - -## Add alias for fish-shell - -### Using curl -```fish -function transfer --description 'Upload a file to transfer.sh' - if [ $argv[1] ] - # write to output to tmpfile because of progress bar - set -l tmpfile ( mktemp -t transferXXXXXX ) - curl --progress-bar --upload-file "$argv[1]" https://transfer.sh/(basename $argv[1]) >> $tmpfile - cat $tmpfile - command rm -f $tmpfile - else - echo 'usage: transfer FILE_TO_TRANSFER' - end -end - -funcsave transfer -``` - -### Using wget -```fish -function transfer --description 'Upload a file to transfer.sh' - if [ $argv[1] ] - wget -t 1 -qO - --method=PUT --body-file="$argv[1]" --header="Content-Type: (file -b --mime-type $argv[1])" https://transfer.sh/(basename $argv[1]) - else - echo 'usage: transfer FILE_TO_TRANSFER' - end -end - -funcsave transfer -``` - -Now run it like this: -```bash -$ transfer test.txt -``` - -## Add alias on Windows - -Put a file called `transfer.cmd` somewhere in your PATH with this inside it: -```cmd -@echo off -setlocal -:: use env vars to pass names to PS, to avoid escaping issues -set FN=%~nx1 -set FULL=%1 -powershell -noprofile -command "$(Invoke-Webrequest -Method put -Infile $Env:FULL https://transfer.sh/$Env:FN).Content" -``` +See good usage examples on [examples.md](examples.md) ## Link aliases diff --git a/examples.md b/examples.md new file mode 100644 index 0000000..362057b --- /dev/null +++ b/examples.md @@ -0,0 +1,176 @@ +# Table of Contents + +* [Aliases](#aliases) +* [Uploading and downloading](#uploading-and-downloading) +* [Archiving and backups](#archiving-and-backups) +* [Encrypting and decrypting](#encrypting-and-decrypting) +* [Scanning for viruses](#scanning-for-viruses) + +## Aliases + + +## Add alias to .bashrc or .zshrc + +### Using curl +```bash +transfer() { + curl --progress-bar --upload-file "$1" https://transfer.sh/$(basename "$1") | tee /dev/null; + echo +} + +alias transfer=transfer +``` + +### Using wget +```bash +transfer() { + wget -t 1 -qO - --method=PUT --body-file="$1" --header="Content-Type: $(file -b --mime-type "$1")" https://transfer.sh/$(basename "$1"); + echo +} + +alias transfer=transfer +``` + +## Add alias for fish-shell + +### Using curl +```fish +function transfer --description 'Upload a file to transfer.sh' + if [ $argv[1] ] + # write to output to tmpfile because of progress bar + set -l tmpfile ( mktemp -t transferXXXXXX ) + curl --progress-bar --upload-file "$argv[1]" https://transfer.sh/(basename $argv[1]) >> $tmpfile + cat $tmpfile + command rm -f $tmpfile + else + echo 'usage: transfer FILE_TO_TRANSFER' + end +end + +funcsave transfer +``` + +### Using wget +```fish +function transfer --description 'Upload a file to transfer.sh' + if [ $argv[1] ] + wget -t 1 -qO - --method=PUT --body-file="$argv[1]" --header="Content-Type: (file -b --mime-type $argv[1])" https://transfer.sh/(basename $argv[1]) + else + echo 'usage: transfer FILE_TO_TRANSFER' + end +end + +funcsave transfer +``` + +Now run it like this: +```bash +$ transfer test.txt +``` + +## Add alias on Windows + +Put a file called `transfer.cmd` somewhere in your PATH with this inside it: +```cmd +@echo off +setlocal +:: use env vars to pass names to PS, to avoid escaping issues +set FN=%~nx1 +set FULL=%1 +powershell -noprofile -command "$(Invoke-Webrequest -Method put -Infile $Env:FULL https://transfer.sh/$Env:FN).Content" +``` + +## Uploading and Downloading + + +### Uploading with wget +```bash +$ wget --method PUT --body-file=/tmp/file.tar https://transfer.sh/file.tar -O - -nv +``` + +### Uploading with PowerShell +```posh +PS H:\> invoke-webrequest -method put -infile .\file.txt https://transfer.sh/file.txt +``` + +### Upload using HTTPie +```bash +$ http https://transfer.sh/ -vv < /tmp/test.log +``` + +### Uploading a filtered text file +```bash +$ grep 'pound' /var/log/syslog | curl --upload-file - https://transfer.sh/pound.log +``` + +### Downloading with curl +```bash +$ curl https://transfer.sh/1lDau/test.txt -o test.txt +``` + +### Downloading with wget +```bash +$ wget https://transfer.sh/1lDau/test.txt +``` + +## Archiving and backups + + +### Backup, encrypt and transfer a MySQL dump +```bash +$ mysqldump --all-databases | gzip | gpg -ac -o- | curl -X PUT --upload-file "-" https://transfer.sh/test.txt +``` + +### Archive and upload directory +```bash +$ tar -czf - /var/log/journal | curl --upload-file - https://transfer.sh/journal.tar.gz +``` + +### Uploading multiple files at once +```bash +$ curl -i -F filedata=@/tmp/hello.txt -F filedata=@/tmp/hello2.txt https://transfer.sh/ +``` + +### Combining downloads as zip or tar.gz archive +```bash +$ curl https://transfer.sh/(15HKz/hello.txt,15HKz/hello.txt).tar.gz +$ curl https://transfer.sh/(15HKz/hello.txt,15HKz/hello.txt).zip +``` + +### Transfer and send email with link (using an alias) +```bash +$ transfer /tmp/hello.txt | mail -s "Hello World" user@yourmaildomain.com +``` +## Encrypting and decrypting + + +### Encrypting files with password using gpg +```bash +$ cat /tmp/hello.txt | gpg -ac -o- | curl -X PUT --upload-file "-" https://transfer.sh/test.txt +``` + +### Downloading and decrypting +```bash +$ curl https://transfer.sh/1lDau/test.txt | gpg -o- > /tmp/hello.txt +``` + +### Import keys from [keybase](https://keybase.io/) +```bash +$ keybase track [them] # Encrypt for recipient(s) +$ 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 +``` + +## Scanning for viruses + + +### Scan for malware or viruses using Clamav +```bash +$ wget http://www.eicar.org/download/eicar.com +$ curl -X PUT --upload-file ./eicar.com https://transfer.sh/eicar.com/scan +``` + +### Upload malware to VirusTotal, get a permalink in return +```bash +$ curl -X PUT --upload-file nhgbhhj https://transfer.sh/test.txt/virustotal +``` \ No newline at end of file