It's the age old problem of transferring files between two computers over the internet, but with a few restrictions:

  • Must not sync. Syncing requires uploading/downloading all files in folder. This can be impractical if the folder is large, data is limited, or network is slow, and is especially undesirable if you only need a fraction of a large number of shared files. The shared folder should offer a selection of files for download, acting similarly to a network drive, rather than mirror all shared data.

  • Peer to peer only. Must not transfer any file/folder data on a third party, no matter if it's encrypted or not. (Third party can be used for connection setup and/or metadata) This rules out cloud services and file hosting sites. This can make the whole process much faster since it's a one step transfer, instead of upload to server then download to client. This also allows it to take advantage of fast LAN networks.

  • Low configuration and low privilege requirements I would highly prefer a quick & dirty solution over something that requires lots of setup/configuration. Also, both server and client are frequently behind a router, and configuring port forwarding is not only a hassle, but may be impossible on networks you do not control (e.g. mobile LTE, public WiFi, or school/work network). So the solution must not require manual network configuration, admin privileges, or other changes that users typically do not have access to. Many users will also not be technically inclined, so complex configurations are not practical, even if it was possible. It should ideally be simple enough to guide a normal user through setup in 5 min over the phone.

Notes:

  • I'm looking mainly for Windows, as that is the most common, but welcome solutions for any OS including mobile. Cross platform solutions are also a huge plus, but not required.

  • Paid options can be considered, but since it's for individuals, it would have to be pretty cheap to justify the cost, and also rules out the many enterprise solutions that exist.

I have found many programs that come very close, but are always missing something crucial:

  • Syncthing: Everything is great, except that it requires syncing.

  • FTP/SFTP: Great solution, except setting up the networking correctly is nontrivial.

  • FilePizza: Great solution, except it only transfers individual files.

  • 1
    Peer to peer requires both computer to be in the same network or at some point there must be a port forwarding or third party involved, which defeats "no tech knowledge required" requirement. – Alejandro Aug 9 at 17:37
  • 1
    @Alejandro: Yes, a third party would be required to setup the connection, but you wouldn't need to transfer files through them. I'm wishing for something like DHT in BitTorrent. The important thing is that file data and metadata is not transferred to third parties. – goweon Aug 10 at 4:27
  • Requirement #1 ) Must not sync. Tag #1 file-synchronization – Mawg Sep 24 at 10:45

Try with simplest approaches - use VPN and network shared folder. If possible - consider having third host that would act as VPN server only (to overcome difficulties in port forwarding that you stated). If not, let one of the hosts act as VPN server - if the user is using one of so called "dynamic IPs", use dynamic dns services.

Dukto does exactly what you want, but I think it only works in LAN. If you want to do transfers over the internet with no 3rd party, your best bet is SFTP. FileZilla is wonderful, there's a (multiplatform) client and a (Windows) server app that are easy to use (relatively speaking). If you only want to send files, maybe set up an HTTP server so people can just direct download from you. Upspin actually looks remarkably like what you're looking for, but it's still experimental.

Why not nextcloud? It is for syncing, but you are not forced to use the syncing feature.

I guess it is not suitable for ad-hoc setting up and using, since you need a server. But if you need it often, then setting up a nextcloud server should solve you file sharing needs.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.