From @lgierth on Sun Sep 18 2016 21:39:44 GMT+0000 (UTC)
tl;dr check out peergos https://github.com/Peergos/Peergos
Rule of thumb: data added to IPFS generally isn't private, unless you 1) encrypt it, or 2) never connect your node to the network. The former will be a part of IPFS itself in the near future, the latter is currently brittle and needs better support for ensuring you really don't connect.
For fetching, you usually need to know the respective hash. Because of the way content routing in IPFS currently works though, it's possible to write a tool that listens for so-called "provider records". Everytime you add something to IPFS, your node becomes a provider of that thing, and broadcasts the hashes it provides to the network, so that other nodes can respond to queries for the location of these.