transfer
Easy file sharing from the command line. Files live up to 14 days.
Install the CLI
curl -fsSL HOST/install.sh | sh
up photo.jpg # prints the download URL
up -d 1 -n 1 secret.pdf # 1 day, single download
up big.iso # files above 90 MB are cut into parts and reassembled server-side
tar cz ./dir | up dir.tgz # stdin
POSIX sh, needs only curl. Runs on BusyBox/OpenWrt, macOS and any Linux. Installs into a bin directory already on your PATH, or creates ~/.local/bin and adds it.
Drop files here or click to choose
Upload
curl --upload-file ./hello.txt HOST/hello.txt
# from stdin
echo "hello" | curl --upload-file - HOST/hello.txt
# limit lifetime and number of downloads
curl -H "Max-Days: 1" -H "Max-Downloads: 1" --upload-file ./secret.pdf HOST/secret.pdf
# multiple files via form
curl -F file=@a.txt -F file=@b.txt HOST/
Download
curl -o hello.txt HOST/AbC123/hello.txt
# several files as one tar
curl -o files.tar "HOST/(AbC123/hello.txt,XyZ789/photo.jpg).tar"
Delete
curl -X DELETE <X-Url-Delete header value returned on upload>
Encrypt before uploading
age -p -o - ./secret.tar | curl --upload-file - HOST/secret.tar.age
curl HOST/AbC123/secret.tar.age | age -d -o secret.tar
Shell helper
transfer() {
[ $# -eq 0 ] && { echo "usage: transfer FILE [FILE..]"; return 1; }
for f in "$@"; do
if [ -t 0 ] && [ ! -f "$f" ]; then echo "no such file: $f" >&2; continue; fi
curl --progress-bar --upload-file "$f" "HOST/$(basename "$f")"; echo
done
}
Limits
- Max file size: 100 MB per plain
curlupload, 2 GB withup(chunked). - Lifetime: 1, 3, 7 or 14 days (
Max-Days), default 7. - Files are deleted when
Max-Downloadsis reached or the lifetime ends. - No server-side encryption or virus scanning. Encrypt sensitive data yourself.