
Ask HN: What is your preferred method of sending large files over the internet? - jedimastert
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?<p>This seems like it would be a solved problem for the day and age, but I&#x27;ve yet to really find a good solution.
======
logotype
First you base64 encode the file so you can print it. Then to enable multiple
recipients you can fax it. But I prefer to put the paper file into a glass
bottle and throw it in the ocean.

~~~
Logiar
If you're open to suggestions I think using rfc1149 would be more efficient
than the bottles.

~~~
logotype
Haha! Excellent, I had no idea there is an RFC for that!

------
blfr
I just put these on my server in a directory with a random name, like
[https://mydomain.tld/files/$(pwgen](https://mydomain.tld/files/$\(pwgen) -s
22 1)/file.ext. Works very well.

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.

~~~
sebazzz
I did. I wrote a small ASP.NET Core based application called IFS [1] which
works on both Windows and Linux. It allows you to upload files yourself (via
login behind password) or create upload links which you can share with your
users so they can upload files. Downloads and uploads can be set to expire and
the file limit is limited to whatever an upstream reverse proxy (if any)
allows. Its simple click and download - or click and upload any requires no
other dependencies other than Javascript support.

[https://github.com/Sebazzz/IFS](https://github.com/Sebazzz/IFS)

~~~
j_s
The dependencies here are killer. A quick walk-through of setup for popular
platforms would go a long way!

------
andygambles
[https://wetransfer.com](https://wetransfer.com)

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.

~~~
johnchristopher
Wetransfer is a cancer. In my organisation I keep being called because the
links are expired and people haven't downloaded the files. They also use it
for sensitive information (links are sent through clear text mail).

We have NAS for local file transfer but the convenience of Wetransfer trumps
that.

~~~
rejschaap
How did they manage to set-up a NAS that is less convenient than WeTransfer?

~~~
johnchristopher
Well. Users don't actually know what a file is. They can click on buttons in
webpages but crawling their way through networked drives is too much.

------
hashhar
Resilio Sync if they are willing to install software.

And Mozilla Send is also nice...
[https://send.firefox.com](https://send.firefox.com)

~~~
j_s
Firefox Send: Private, Encrypted File Sharing |
[https://news.ycombinator.com/item?id=15448996](https://news.ycombinator.com/item?id=15448996)
(Oct 2017, 258 comments)

------
chrsstrm
transfer.sh [0] will handle files up to 10GB but it is not p2p, which can
either be good or bad. Files are purged from the server after 14 days.

Someone here mentioned ShareDrop [1] recently which looks really nice,
although I haven't used it yet.

[0] [https://transfer.sh/](https://transfer.sh/)

[1] [https://www.sharedrop.io/](https://www.sharedrop.io/)

------
panta
Resilio Sync (formerly Bittorrent Sync) can be used to serve files from your
own machine: [https://www.resilio.com](https://www.resilio.com)

SyncThing ([https://syncthing.net](https://syncthing.net)) is an open source
alternative too.

~~~
reustle
Glad to see btsync renamed since it wasn't open source

------
sanat
[https://wetransfer.com](https://wetransfer.com) is reliable for files that
just need to be transferred - has an upload limit of 2GB per transfer in the
free tier.

------
asymmetric
Magic Wormhole. It allows two users to send each other a file, and they find
each other via a short, English language passphrase (think “horse battery
staple”).

It’s a command line python utility so might not be the best solution for
completely non-technical people, but I love it.

[https://github.com/warner/magic-wormhole](https://github.com/warner/magic-
wormhole) [https://techcrunch.com/2017/06/27/magic-wormhole-is-a-
clever...](https://techcrunch.com/2017/06/27/magic-wormhole-is-a-clever-way-
to-send-files-easily-and-securely/)

~~~
gurgus
Yes! I absolutely love magic wormhole!!!

------
exikyut
rsync is by far not the most efficient solution out there nowadays, but it
cannot be denied that it does work.

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

    
    
      rsync -P -a -z file rsync://server/module/path
    

and then after this has completed

    
    
      rsync -P -a -z file rsync://server/module/path -c --remove-source-files
    

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

    
    
      -v --info=all --debug=all
    

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 :D

For 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... >.<

------
mtmail
There's several [https://www.mailbigfile.com/](https://www.mailbigfile.com/)
-like freemium services. They upload the file and send the recipient a link
that expires in 7 days.

[https://send.firefox.com/](https://send.firefox.com/) allows 1GB and expires
after 24h.

------
vsenko
Syncthing ([https://syncthing.net/](https://syncthing.net/)) works well for
tech guys. It's oss and bidirectional.

~~~
timlyo
My vote goes for Syncthing too, simple single binary install and works with no
configuration. I've installed it on my desktop, vps, laptop, and phone use it
instead of Dropbox now.

I've even got two non techy friends to install it (albeit talking them through
it) and it still works to this day.

------
pwg
You left off one fact that is _very_ important in picking an answer:

Does the large file need to remain private (i.e., as in only be
readable/usable to the individual or small group)?

------
d--b
BitTorrent is not a bad option...

------
marcusr
Ours is a commercial service, but we built
[https://www.bigfilebox.com](https://www.bigfilebox.com) to solve this problem
10 years ago and we're still going strong. Our main market is architects and
engineers who needs to send files like this every day, to specific groups of
people, and be sure only those people can see the files sent.

------
ianlevesque
[https://instant.io/](https://instant.io/) is an easy P2P option over
WebSockets.

~~~
predakanga
I went to use this last week, discovered a major limitation - the only CLI
client that I found, webtorrent-hybrid, requires an X server to be running.

~~~
axonic
_facepalm_

------
theyregreat
[https://mega.nz](https://mega.nz)

End-to-end encrypted and does private and public sharing.

50 GiB free per account

------
PaulHoule
Burn it on a DVD or Blu Ray, mail it to them.

------
Joeboy
If they're here in London I generally try to meet them in person with a USB
device, which is usually the most pleasant option.

Otherwise I usually ssh or rsync the files to my webserver. Sometimes this
seems horrifically slow though, for reasons I've never worked out. Maybe some
kind of throttling somewhere.

------
skrebbel
[https://ge.tt](https://ge.tt) is an underrated service IMO. Very simple and
to the point. A core feature is that your recipient can start downloading as
you upload it. I never understood their business model though, it appears they
don't have one.

------
cozzyd
If sending to someone, I just sym link it to the webserver dir on my
workstation, in a non-indexable directory with a non-trivial name.

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.

------
Nemant
[https://www.file.io/](https://www.file.io/) is the simplest most convenient
way to do this.

They also have an API: [https://www.file.io/#one](https://www.file.io/#one)

They limit you to 5GB for the free version.

------
toomuchtodo
Upload to S3, generate presigned URL, distribute presigned URL (with optional
expiration)

------
pavlov
Amazon S3, or one of the API-compatible alternatives.

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.

------
saagarjha
Mail Drop works well up to 5 GB:
[https://support.apple.com/kb/ph2629?locale=en_US](https://support.apple.com/kb/ph2629?locale=en_US).
You need to be on a Mac though.

------
CephalopodMD
mega (kim dot com's successor to megaupload) would be good for you. It's like
dropbox, but encrypted iirc, and gives you 50 gigs right off the bat. Only
issue is speed, but shouldn't be too bad.

~~~
exikyut
Note that Kim Dotcom publicly outed MEGA as an untrustworthy platform after
its purchase by an unnamed Chinese buyer.

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.

------
gnur
I have minio running on a raspberry pi at home and exposed it via a port
forward.

It has built in support to generate links that automatically expire.

------
andraaspar
Google Drive for public, Dropbox for private, Keybase for self.

If it's real huge, you could use Bittorrent. Or you could rent a VPS and host
it.

------
agumonkey
something like file.pizza is "alright"

------
adzicg
I upload to S3, which gives me the option of using either a public or a signed
URL to share it

------
rootsudo
Google Drive/One Drive

worse comes to worse, server on azure or EC2.

Encrnypted archive with modified SOF is ok for me.

------
tastyham
Fedex.

Probably over kill for GBs on a thumb drive, but mailing ssds is convieniant
for TB+ data sets.

------
anonfunction
Serve it with nginx, as a bonus you get logs to see who accessed it.

~~~
predakanga
In this vein (and the current pricing kerfuffle notwithstanding), Caddy is
great.

Just cd into the directory and "caddy", no config needed.

------
feistypharit
I use [https://www.sendsafely.com](https://www.sendsafely.com)

------
assafmo
scp or rsync if ssh is possible, otherwise bittorrent.

------
sumitwatts
I did this.

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...](https://lifehacker.com/5534190/how-to-share-your-own-files-using-
bittorrent)

But, I encrypted the file and sent the password to decrypt via email.

