Copies an existing blob's contents, properties, and metadata to a new blob. Namespace: Microsoft.WindowsAzure.StorageClient
Assembly: Microsoft.WindowsAzure.StorageClient (in Microsoft.WindowsAzure.StorageClient.dll)
Usage
Visual Basic |
---|
Dim instance As CloudBlob Dim source As CloudBlob instance.CopyFromBlob(source) |
Syntax
Visual Basic |
---|
Public Sub CopyFromBlob ( _ source As CloudBlob _ ) |
C# |
---|
public void CopyFromBlob ( CloudBlob source ) |
C++ |
---|
public: void CopyFromBlob ( CloudBlob^ source ) |
J# |
---|
JScript |
---|
Parameters
- source
Type: Microsoft.WindowsAzure.StorageClient.CloudBlob
The source blob.
Example
The following code example copies a source blob to a destination blob.
C# | Copy Code |
---|---|
static void CopyBlob(Uri blobEndpoint, string accountName, string accountKey) { // Create service client for credentialed access to the Blob service. CloudBlobClient blobClient = new CloudBlobClient(blobEndpoint, new StorageCredentialsAccountAndKey(accountName, accountKey)); // Get a reference to the source blob. CloudBlob sourceBlob = blobClient.GetBlobReference("mycontainer/myblob.txt"); sourceBlob.FetchAttributes(); // Get a reference to the destination blob. CloudBlob destBlob = blobClient.GetBlobReference("mycontainer/myotherblob.txt"); try { // Copy source blob to destination blob. destBlob.CopyFromBlob(sourceBlob); } catch (StorageClientException e) { Console.WriteLine("Error code: " + e.ErrorCode); } } |
Remarks
The CopyFromBlob method copies the source blob specified in the source parameter to the blob on which this method is called (the destination blob).
Copying a source blob always copies the entire blob; copying a range of bytes or a set of blocks is not supported.
A blob copy operation can take any of the following forms:
You can copy a source blob to a destination blob with a different name from that of the source blob. The destination blob can be an existing blob, or a new blob created by the copy operation.
You can copy a source blob to a destination blob with the same name, effectively replacing the source blob. Such a copy operation removes any uncommitted blocks and overwrites the blob's metadata.
You can copy a snapshot over its base blob. By promoting a snapshot to the position of the base blob, you can restore an earlier version of a blob.
You can copy a snapshot to a destination blob with a different name. The resulting destination blob is a writeable blob and not a snapshot.
Copying Blob Properties and Metadata
When a blob is copied, the following system properties are copied to the destination blob with the same values:
The source blob's committed block list is also copied to the destination blob, if the blob is a block blob. Any uncommitted blocks are not copied.
Copying Conditionally
You can specify an access condition to copy the blob only if a condition is met, using the overload that takes an options parameter. To specify a condition on the destination blob, use the AccessCondition property. To specify a condition on the source blob, use the CopySourceAccessCondition property. If the specified condition is not met, the blob is not copied, and the Blob service returns HTTPStatusCode.PreconditionFailed.
Copying a Leased Blob
To copy a leased blob, use the CopyFrom method.
Copying Snapshots
When a source blob is copied, any snapshots of the source blob are not copied to the destination. When a destination blob is overwritten with a copy, any snapshots associated with the destination blob stay intact under its name.
You can perform a copy operation to promote a snapshot blob over its base blob. In this way you can restore an earlier version of a blob. The snapshot remains, but its source is overwritten with a copy that can be both read and written.