1. A cloud resource allocation server for adaptively striping data across a plurality of storage clouds, the cloud resource allocation server comprising: a communication hardware module to receive (i) user constraints corresponding one or more of a plurality of cloud storage providers and (ii) a file to be striped across the plurality of cloud storage providers; a block allocation hardware module to (i) split the received file into a plurality of file blocks as a function of the user constraints and (ii) allocate each of the plurality of file blocks to a cloud storage provider of the plurality of cloud storage providers as a function of the user constraints and operating conditions of each of the plurality of cloud storage providers, each of the plurality of file blocks being allocated to a different cloud storage provider, (iii) store location metadata for each of the plurality file blocks, wherein the location metadata for each file block identifies the cloud storage provider of the plurality of cloud storage providers to which the respective file block is allocated and stored, (iv) replicate the location metadata for each of the plurality of file blocks to another cloud resource allocation server, and (v) store re-assembly metadata for re-assembling the file from each of the plurality of file blocks; a change detection hardware module to detect a change to the operating conditions of a first cloud storage provider of the plurality of cloud storage providers storing a file block of the plurality of file blocks; wherein the communication hardware module is further to send each of the plurality of file blocks to the cloud storage provider to which each file block is allocated to be stored; and wherein the block allocation hardware module is further to (i) reallocate the stored file block from the first cloud storage provider to a second cloud storage provider of the plurality of cloud storage providers in response to a determination that the changed operating conditions of the first cloud storage service provider no longer satisfy the user constraints and (ii) update the location metadata for the file block reallocated from the first cloud storage provider to the second cloud storage provider.