Question: I'm looking for a simple **but direct** way to transfer a file of any kind and any size between two people. If possible, having only a web browser, without having the file stored on a third machine meanwhile.

I wish to do it **without** requiring the end users to connect to a third server, because that way the data will flow through the machine `xyz.com`, possibly slowing down the transfer, and posing security risks.

I would like to avoid setting up a whole FTP server just for occasional file transfers. So far I have discovered [JetBytes](http://jetbytes.com/), [Click2Copy](http://click2copy.com/) and [PipeBytes](http://host03.pipebytes.com/). Those web services should make the transfer easy. However the traffic goes through their servers so they are no good to what I want.

I want the transfer to be direct between the client and me. **Encryption would be a nice additional feature.**

I know that doing so I have to open one port on my computer, and configure a bit port redirection on my router. **However, NAT traversal would be nice addition, too.**

My question is:

**Is there a simple way for one single end-to-end direct file transfer between two computer, avoiding third parties?** (if possible, with encryption and NAT traversal)

Answer: 
Magic Wormhole can be used for this. On Ubuntu you can install via apt-get (it is also available via Python pip):

```
sudo apt install magic-wormhole

```

To send a file you simply tell what to send

```
wormhole send README.md

```

This will output the command line you should run on the receiving end. This includes a secret key (which is such that you can also read it over the phone). You don't specify any machine names or IP addresses. Wormhole establishes the connection automatically and encrypts the files to be transferred.

<https://magic-wormhole.readthedocs.io/en/latest/welcome.html>
Bit torrent sync does synchronize folders over the web. Files are encrypted also.
Check it out.

<http://www.bittorrent.com/sync>