Fix Dockerfile warning
Allow multiple files in a single transfer
Attempt to format README
A tool for instantly sharing files between two devices.
The process looks like:
/
Upload
Frequently I want to transfer photos from my phone to laptop. I used to just upload it to Drive, but that process was always clunky and annoying.
I know there are other (and better) solutions, like Syncthing, but I just wanted a simple, no-frills, instant way to transfer a file that didn't involve downloading apps, running daemons, signing in, etc.
Visiting the main page (i.e. /
) generates a random 32-byte ID, which is encoded in the QR code. That QR code points to /upload?id=<id>
, which is where the sender can upload a file. The receiver has a WebSocket open which waits for the sender to start uploading, at which point the receiver is redirected to /download?id=<id>&name=<filename>
.
Then the magic happens! Sender and receiver are connected via in-memory pipes, the data never touches disk (besides what Go does behind the scenes with temp files for multipart uploads).
In my experience, the data transfer is pretty fast, I was getting 1 MB/s transfer speeds with a proxy server hosted a few hundred miles away, and I get even higher speeds over my Tailscale network.
Depends! If you host it behind an HTTPS proxy (which you really, really should), then the file is encrypted on the wire. The file is not "end-to-end encrypted", the server could store a copy of your file, but the code can be inspected to assuage such fears.
As always, don't send arbitrarily sensitive information to random people's servers. Risk and security is contextual.
name
query parameter on /download
/
page with the QR code, for other methods of sharing