What we need is a distributed, redundant, peer-to-peer locker.
Imagine if your data is broken into compressed, encrypted chunks. The encryption and compression is done in such a way that, without all of the chunks, it is impossible to decrypt- any one chunk is statistically identical to noise.
These chunks are distributed to several peers on the network. No peer has more than one chunk of anyone's data, and each chunk is copied to several peers.
You keep the encrypted identity of all these chunks in a "key" file. You can only access your data with this key file, and then only with a password.
Now your data is absurdly secure, and can be accessed from anywhere you have the key file. Of course, you must contribute storage space, but the data you are holding could be absolutely anyone's, and is just as thoroughly encrypted. Downloading files could be faster than modern systems, since you will have several direct links to your target peers.
This may require a central server to assign chunks to peers and distribute load as some peers go a away and reappear. However, it may also be possible to make an entirely p2p network by having peers communicate about what sort of load they are on. Popular chunks might be distributed automatically to other hosts. Files that are accessed rarely might be moved to servers with high uptimes and storage but low connection speeds, thus opening more space elsewhere. All this would of course require updating the key files... perhaps a central server would be needed. Nonetheless, this central server would not only never contain any of the files, no one, anywhere, besides the end user, knows the contents of the files, making it utterly impossible to censor.