This is done by determining which regions of a Page Blob, File Service file, or local file are allocated and only transferring those regions, which improves both network and storage utilisation.
- For Azure Page Blobs, the Get Page Ranges API request is used to obtain a list of allocated regions.
- For Azure File Service files, the List Ranges API request is used.
- For local files, SEEK_DATA and SEEK_HOLE are used to determine which regions of a file are allocated.
- Amazon S3 Objects and Azure Block Blobs are still downloaded and uploaded in entirety.
- Sparse regions are unsupported by these services.