Let's say you have a private blockchain, a DApp with an workflow to store and retrieve data from that blockchain. Now there is a need to store binary files and access it in a permissible way.
One way is we can store it using IPFS or SWARM. To make it non accessible by anyone directly the way is we just encrypt it and store it. To view the document one has to go via the DApp to decrypt it and then view.
But while developing an enterprise level application there maybe concern to make the documents available in a public de-centralized storage. Secondly when one encrypts a file the data changes every time due to encryption. Although when de-crypted one can retrieve the original file. What it means is, every time one stores the same file in IPFS/SWARM, because data has changed due to encryption a new file is created, which defy one of the basic feature of these decentralized storage applications (i.e. same content same hash).
So this is what I am looking for
- An external storage app
- Accessible in private network only and not in public
- Should easily fit with Ethereum
- Provide permissioned based access
- Return a hash of the file created in the storage which could be stored in 5. blockchain
- If possible directly integrate with the contract otherwise via NodeJS
Please share details in this regard as to what apps meeting these above listed criteria are available and some links to the same