1. A method for routing data to storage comprising: receiving a request from a user to store a file; determining implicit metadata from explicit metadata received with the request, the implicit metadata including data type, data size, confidentiality type, legal type, location type, access type, user type and device type; accessing a registry of storage resources; determining a storage resource based on the explicit metadata, the implicit metadata, and the registry of storage resources, wherein the registry of storage resources includes information describing characteristics of available storage resources and the determining comprises comparing the implicit metadata and the explicit metadata to the characteristics of the available storage resources, wherein the characteristics of the available storage resources are regularly updated, and wherein the explicit metadata comprises information provided by the file to be stored and information provided by the user in the request; routing data of the file to the determined storage resource; re-determining whether the determined storage resource is suitable to store the data of the file based on the implicit metadata; and dynamically provisioning an additional storage resource to store the data of the file based on the implicit metadata when the determining or re-determining determines that the determined storage resource is not suitable wherein the determining implicit metadata and the determining the storage resource are performed by a computing device comprising at least one processor.