A method for storing data in a distributed network having a plurality of datacenters distributed over a plurality of geographic regions and accessed by a plurality of users, the data including metadata and being accessible to the plurality of users, the metadata indicating one or more storage locations of the data within the distributed network, and respective geographic locations from which the data was uploaded, wherein each geographic region includes at least one of the plurality of users, the method comprising: receiving, by one or more processors, data uploaded to a first user of the plurality of users to a first datacenter of the distributed network; receiving, by the one or more processors, access information about access by the plurality of users to previously uploaded data; prior to the uploaded data being accessed by any of the plurality of users, predicting, by the one or more processors, one or more of the plurality of geographic regions from which the uploaded data will be accessed by one or more of the plurality of users based at least in part on the storage locations of the previously uploaded data within the distributed network, the geographic locations from which the previously uploaded data was uploaded, and the access information about access to the previously uploaded data by one or more of the plurality of users other than the first user, wherein the access information is derived from a predictive model trained on the metadata of the previously uploaded data, wherein the metadata further comprises information about a time of the upload and a time of an earliest download for each uploaded data, wherein this information is further used to train the predictive model to predict an amount of time until the uploaded data is likely to be downloaded; determining, based on the predicted amount of time, whether the uploaded data is likely to be in high demand within a threshold amount of time; and instructing, by the one or more processors, the uploaded data to be transferred from the first datacenter to one or more second datacenters located at one or more of the predicted geographic regions, copying the uploaded data from a data server of the first datacenter to a caching server if the predicted amount of time is equal or less than the threshold amount of time, and injecting the uploaded data to caching servers of the one or more second datacenters. receiving, by one or more processors, data uploaded to a first user of the plurality of users to a first datacenter of the distributed network; receiving, by the one or more processors, access information about access by the plurality of users to previously uploaded data; prior to the uploaded data being accessed by any of the plurality of users, predicting, by the one or more processors, one or more of the plurality of geographic regions from which the uploaded data will be accessed by one or more of the plurality of users based at least in part on the storage locations of the previously uploaded data within the distributed network, the geographic locations from which the previously uploaded data was uploaded, and the access information about access to the previously uploaded data by one or more of the plurality of users other than the first user, wherein the access information is derived from a predictive model trained on the metadata of the previously uploaded data, wherein the metadata further comprises information about a time of the upload and a time of an earliest download for each uploaded data, wherein this information is further used to train the predictive model to predict an amount of time until the uploaded data is likely to be downloaded; determining, based on the predicted amount of time, whether the uploaded data is likely to be in high demand within a threshold amount of time; and instructing, by the one or more processors, the uploaded data to be transferred from the first datacenter to one or more second datacenters located at one or more of the predicted geographic regions, copying the uploaded data from a data server of the first datacenter to a caching server if the predicted amount of time is equal or less than the threshold amount of time, and injecting the uploaded data to caching servers of the one or more second datacenters.