Copy a blob with .NET

This article provides an overview of copy operations using the Azure Storage client library for .NET.

About copy operations

Copy operations can be used to move data within a storage account, between storage accounts, or into a storage account from a source outside of Azure. When using the Blob Storage client libraries to copy data resources, it's important to understand the REST API operations behind the client library methods. The following table lists REST API operations that can be used to copy data resources to a storage account. The table also includes links to detailed guidance about how to perform these operations using the Azure Storage client library for .NET.

REST API operation When to use Client library methods Guidance
Put Blob From URL This operation is preferred for scenarios where you want to move data into a storage account and have a URL for the source object. This operation completes synchronously. SyncUploadFromUri
SyncUploadFromUriAsync
Copy a blob from a source object URL with .NET
Put Block From URL For large objects, you can use Put Block From URL to write individual blocks to Blob Storage, and then call Put Block List to commit those blocks to a block blob. This operation completes synchronously. StageBlockFromUri
StageBlockFromUriAsync
Copy a blob from a source object URL with .NET
Copy Blob This operation can be used when you want asynchronous scheduling for a copy operation. StartCopyFromUri
StartCopyFromUriAsync
Copy a blob with asynchronous scheduling using .NET

For append blobs, you can use the Append Block From URL operation to commit a new block of data to the end of an existing append blob. The following client library methods wrap this operation:

For page blobs, you can use the Put Page From URL operation to write a range of pages to a page blob where the contents are read from a URL. The following client library methods wrap this operation:

Client library resources