A computer-implemented system for storing digital content at at least one remote storage location maintained by a storage provider, the system including a gateway component configured to receive storage request data representing a request to store digital content, the storage request data including data identifying a source location of the digital content; an allocator component configured to: a) determine from a plurality of remote storage locations the at least one remote storage location at which the digital content is to be stored, wherein the plurality of remote storage locations includes a first location accessible using a first message format and a second location accessible using a second different message format, wherein at least one agent process (240, 245) is associated with the at least one remote storage location at which the digital content is to be stored; b) create one or more additional agent processes upon receiving storage request data if the size of the digital content requested to be retrieved and stored by existing agent processes exceeds the size of the digital content successfully stored by the existing agent processes by an amount greater than a capacity threshold or create one or more additional agent processes upon receiving storage request data if all of the existing agent processes are busy retrieving digital content from a source location or storing it in at least one remote storage location, and c) send, to at least one agent process associated with the at least one remote storage location, transfer request data representing a request to retrieve the digital content from the source location, and store it in the at least one storage location. a gateway component configured to receive storage request data representing a request to store digital content, the storage request data including data identifying a source location of the digital content; an allocator component configured to: a) determine from a plurality of remote storage locations the at least one remote storage location at which the digital content is to be stored, wherein the plurality of remote storage locations includes a first location accessible using a first message format and a second location accessible using a second different message format, wherein at least one agent process (240, 245) is associated with the at least one remote storage location at which the digital content is to be stored; b) create one or more additional agent processes upon receiving storage request data if the size of the digital content requested to be retrieved and stored by existing agent processes exceeds the size of the digital content successfully stored by the existing agent processes by an amount greater than a capacity threshold or create one or more additional agent processes upon receiving storage request data if all of the existing agent processes are busy retrieving digital content from a source location or storing it in at least one remote storage location, and c) send, to at least one agent process associated with the at least one remote storage location, transfer request data representing a request to retrieve the digital content from the source location, and store it in the at least one storage location. a) determine from a plurality of remote storage locations the at least one remote storage location at which the digital content is to be stored, wherein the plurality of remote storage locations includes a first location accessible using a first message format and a second location accessible using a second different message format, wherein at least one agent process (240, 245) is associated with the at least one remote storage location at which the digital content is to be stored; b) create one or more additional agent processes upon receiving storage request data if the size of the digital content requested to be retrieved and stored by existing agent processes exceeds the size of the digital content successfully stored by the existing agent processes by an amount greater than a capacity threshold or create one or more additional agent processes upon receiving storage request data if all of the existing agent processes are busy retrieving digital content from a source location or storing it in at least one remote storage location, and c) send, to at least one agent process associated with the at least one remote storage location, transfer request data representing a request to retrieve the digital content from the source location, and store it in the at least one storage location.