Ask HN: What is your preferred method of sending large files over the internet?
If you have, say, a several GB file (too large for something like email or standard Dropbox, but not big enough to warrant at specialized solution) and need to send it to an individual or a small group of people, without being able to physically hand them a thumb drive, how would you personally go about doing so?
This seems like it would be a solved problem for the day and age, but I've yet to really find a good solution.
57 comments
[ 6.4 ms ] story [ 98.5 ms ] threadhttps://send.firefox.com/ allows 1GB and expires after 24h.
Does the large file need to remain private (i.e., as in only be readable/usable to the individual or small group)?
I had to send 10 GB of the file once to my friend. I sent it via torrent.
https://lifehacker.com/5534190/how-to-share-your-own-files-u...
But, I encrypted the file and sent the password to decrypt via email.
If it's real huge, you could use Bittorrent. Or you could rent a VPS and host it.
SyncThing (https://syncthing.net) is an open source alternative too.
The problem is worse when they have to send something back to me. I considered running a simple web app that allows you to upload a file if you know the secret URL like above but never got around to actually build it. Someone probably did though.
I have a local VM at home running a web server that can hold such files, but in AU decent uplink speeds are mostly a fantasy, so in the case OP described of needing to send to multiple people I'd upload it first to a VPS I keep that serves a similar purpose. This way I only flood my uplink once.
Obfuscated path for some very basic privacy, though of course you can encrypt and email password if that works better.
If it's going to happen semi-regularly, and the files are large and there are multiple recipients, then I'd look at BitTorrent. Most people have a client installed, or can install one fairly painlessly. Biggest challenge there would be that 6881 (etc) are often blocked, or at least monitored, on corporate firewalls.
https://github.com/Sebazzz/IFS
They also have an API: https://www.file.io/#one
They limit you to 5GB for the free version.
Often sending to non-technical people and this I have found is the easiest solution they understand. Click and download.
Would use Google Drive but it makes the download process rather complicated and non-obvious.
We have NAS for local file transfer but the convenience of Wetransfer trumps that.
I've also read observations that the encryption wasn't up to scratch as well.
Totally use it for random file sharing, sure, but use your own end-to-end encryption if you really want it, and if you think it's necessary add your own anonymization into the mix.
If receiving, I create a shell account on my workstation for them, and have them scp it. If they're non-technical, I tell them to download a GUI SCP client for their platform.
And Mozilla Send is also nice... https://send.firefox.com
Most desktop FTP clients support the S3 protocol, so it’s convenient: you can just treat it like an FTP server with infinite disk space and file-level control over which files are visible via HTTPS.
worse comes to worse, server on azure or EC2.
Encrnypted archive with modified SOF is ok for me.
I've even got two non techy friends to install it (albeit talking them through it) and it still works to this day.
Someone here mentioned ShareDrop [1] recently which looks really nice, although I haven't used it yet.
[0] https://transfer.sh/
[1] https://www.sharedrop.io/
Just cd into the directory and "caddy", no config needed.
It can run over ssh ('rsync ... user@host:/path/to/file' will pass the 'user@host' bit to ssh and then use the resulting link) or rsync (which is unencrypted but a fair bit faster).
What I do to move (not copy) data around my LAN and know that the file has transferred okay is to
and then after this has completed The first just dumbly copies the data; the second uses checksum diffing to copy the failed bits.If you have a pathologically bad network, you could use 'rsync ..... -c' and only when rsync says there were no differences use --remove-source-files. (You can get transfer statistics with the following extra commandline parameters.)
I also add
onto the end of my commands, because I like the extra info this spits out. Protip, DO NOT use -vv (ie verbosity level 2) with info/debug=all, it will tell you about every single hash block match :DFor large files the comparison will take some time because rsync uses a fairly dumb design and a very slow checksum algorithm (there are faster alternatives with better (lower) collision rates out there). But rsync is like perl, it will almost always exist where you need it.
I don't consider rsync a particularly modern tool, and it's given me a lot of ideas on how to write a better implementation at some point. But it's a ton easier than sha1summing hundred-gigabyte tar files, which is what I used to do... >.<