x.joor.net — easy file sharing from the command line ======================================================= Uploads are deleted automatically after 15 days. Max file size: 9.53 GB. Upload ------ $ curl --upload-file ./hello.txt https://x.joor.net/hello.txt https://x.joor.net/8qUHbWxhib/hello.txt Upload from a pipe ------------------ $ tar czf - ./mydir | curl --upload-file - https://x.joor.net/mydir.tar.gz $ cat /var/log/syslog | grep error | curl --upload-file - https://x.joor.net/errors.log Download -------- $ curl -O https://x.joor.net/8qUHbWxhib/hello.txt Force download instead of the preview page: $ curl -O https://x.joor.net/get/8qUHbWxhib/hello.txt Download several files as one archive ------------------------------------- $ curl -O "https://x.joor.net/(8qUHbWxhib/one.txt,Latwkr7NkW/two.txt).zip" $ curl -O "https://x.joor.net/(8qUHbWxhib/one.txt,Latwkr7NkW/two.txt).tar.gz" Delete ------ Every upload returns an X-Url-Delete header with a one-off deletion URL: $ curl -sD - --upload-file ./hello.txt https://x.joor.net/hello.txt | grep -i x-url-delete x-url-delete: https://x.joor.net/8qUHbWxhib/hello.txt/Latwkr7NkW $ curl -X DELETE https://x.joor.net/8qUHbWxhib/hello.txt/Latwkr7NkW Request headers --------------- Max-Downloads: 1 link dies after N downloads Max-Days: 3 shorter lifetime than the default 15 days X-Encrypt-Password: secret server-side AES-256 encryption at rest X-Decrypt-Password: secret decrypt on the way out $ curl --upload-file ./hello.txt https://x.joor.net/hello.txt \ -H "Max-Downloads: 1" -H "Max-Days: 3" Client-side encryption (the server never sees the passphrase) ------------------------------------------------------------- $ gpg --armor --symmetric --output - hello.txt | \ curl --upload-file - https://x.joor.net/hello.txt.asc $ curl https://x.joor.net/8qUHbWxhib/hello.txt.asc | \ gpg --decrypt --output hello.txt Shell function — add to ~/.bashrc or ~/.zshrc --------------------------------------------- transfer() { if [ $# -eq 0 ]; then echo "usage: transfer " >&2; return 1; fi local file="$1" name name=$(basename "$file") if [ -d "$file" ]; then (cd "$file" && zip -r -q - .) | curl --progress-bar --upload-file - "https://x.joor.net/$name.zip" else curl --progress-bar --upload-file "$file" "https://x.joor.net/$name" fi echo } $ transfer hello.txt Browser ------- Open https://x.joor.net/ and drop your files there. Powered by transfer.sh — https://github.com/dutchcoders/transfer.sh