Could you potentially run your own Dropbox / SpiderOak / Google Drive?

Potentially. I mean I think. Here's my thought process.

What's needed

Basically the whole reason for Dropbox, SpiderOak and Google Drive is a place where you put files that will magically appear on every device that has access to the same account. So if I take a picture on my phone, it gets synced with my computer, iPad, microwave oven, fridge and cat.

There's BitTorrent Sync, which is a peer to peer data syncing protocol thing. It works just like torrent, except you get to specify what gets synced with whom.

For data to actually sync, the device that has the data, and the device that is receiving the data both need to be online at the same time.

DB, SO and GD work because they have a "peer" on a central server that's ALWAYS online, whereas your phone and computer might both be offline because you've turned your computer off and you're hiking in the middle of Wales with glorious amounts of no mobile signal present. Unsignal.

But what if...

You COULD have your OWN peer on the internet. Here's what we've done for Ghostalk, where we had to sync at least 4 files each 400mb+ with each other on a weekly basis because recording a podcast is not easy.

Fabian, Nick and myself all had BTSync installed on our computers. Fabian set up two other nodes: a work computer and a home computer, and I set up one extra node: a raspberry pi that is connected to the internet at all times (well, when BT decides to provide internet). That means that every time we put a file in the shared folders, those will start syncing with the automated nodes (Fabian's two computers and my always-on pi) as well as with our own computers that may or may not be on. Obviously each of us need to wait until our own files synced up with the nodes. Worked perfectly, currently there are 38Gb worth of files in there.

So what to do:

  1. Get a Linode server (not an affiliate link) you think will have enough space. Yes, this will cost you money. (Otherwise get a pi for your home internet)
  2. set up BTSync on the Linode server, and on all the other devices you want to sync to.
  3. ???
  4. Enjoy your own filesyncing thingumajig.

For extra points

Because you have root access on the Linode box, you could implement encryption of the volume. BTSync is already using encrypted traffic to move bits of your files over the network anyways.

Disclaimers

Not being a security expert I have absolutely no idea how "safe" this method is.

EDIT: Linode is one service you can use. Not necessarily the best. There's Digital Ocean, AWS, what have you. Basically, a server on the internet that's always connected and you have root access to. :)