It sounds like what you want is what IPFS already does. When you add a file to IPFS you are given a hash that acts as the address for the file, instead of a URL like “www.foo.bar/file” . The file is not automatically sent out to anyone unless someone asks for your file with the hash. IPFS is meant to replace things like HTTP and other protocols that rely on an address that points to a physical server. It isnt a storage network, unless a bunch of other people have already downloaded your file you still need to host it yourself. However when someone requests the file they can download it from anyone who has previously downloaded the file and not deleted it yet, sort of like BitTorrent, but on a per-file-basis rather than a whole collection of files as contained in a torrent. Individual files on your social network, say images, posts, private messages, are available to anyone, but no one downloads them unless they try to, same as you didn’t download the forum thread page until you tried going to the forum and created a new thread.
Hope that helps to clarify things a bit. I’ll try to answer any further questions you may have, but I’ll warn you that I’m not actually an IPFS developer, just an enthusiast of sorts with a technical understanding of lots of things.