1. A method for replicating objects from a source storage managed by a source server to a target storage managed by a target server, comprising: building a source list of objects at the source server to replicate to the target server as part of a replication request, wherein each of the objects is comprised of chunks; querying the target server to obtain a target list of objects at the target server satisfying a replication criteria of the replication request, wherein the replication criteria allows for selection and filtering of objects to replicate at an object level; building a replication list indicating objects on the source list not included on the target list to transfer to the target server; for each object in the replication list, performing: determining chunks in the object; determining a first set of the chunks in the object that are not stored at the target storage; sending the first set of the chunks in the object not already at the target storage to the target server; sending metadata on the object, in the replication list, to the target server to cause the target server to include the metadata in an entry for the object, in the replication list, in a target server replication database; adding an entry having information for the object being replicated to a source server replication database; determining a second set of chunks in the object that are currently stored at the target storage; and sending chunk identifiers of chunks in the second set of chunks to the target server; and sending metadata to the target server for objects at the source server matching objects at the target server in the target list and that are not in the replication list.