SALES: 1-800-867-1380

CloudBlob.BeginSetMetadata Method (AsyncCallback, Object)

Updated: April 24, 2013

[This topic is part of the Microsoft Azure Storage Client Library 1.7, which has been deprecated. See Storage Client Library for the latest version.]

Begins an asynchronous operation to update the blob's metadata.

Namespace: Microsoft.WindowsAzure.StorageClient
Assembly: Microsoft.WindowsAzure.StorageClient (in Microsoft.WindowsAzure.StorageClient.dll)

'Usage
Dim instance As CloudBlob
Dim callback As AsyncCallback
Dim state As Object
Dim returnValue As IAsyncResult

returnValue = instance.BeginSetMetadata(callback, state)

public IAsyncResult BeginSetMetadata (
	AsyncCallback callback,
	Object state
)

Parameters

callback

Type: System.AsyncCallback

The callback delegate that will receive notification when the asynchronous operation completes.

state

Type: System.Object

A user-defined object that will be passed to the callback delegate.

Return Value

Type: System.IAsyncResult

An IAsyncResult that references the asynchronous operation.

The following code example creates an instance of a blob in the cloud, and then populates it’s metatdata using an asynchronous call.


private void Eg_BeginSetMetadata1(Uri blobEndpoint, string accountName, string accountKey)
{
    // Create a service client for credentialed access to the Blob service.
    CloudBlobClient blobClient =
        new CloudBlobClient(blobEndpoint,
            new StorageCredentialsAccountAndKey(accountName, accountKey));

    // Create a blob reference.
    CloudBlob myBlob = blobClient.GetBlobReference("mycontainer/myblob.txt");

    // Write text to the blob.
    myBlob.UploadText("One man that has a mind and knows it can always beat ten men who haven't and don't.");

    // Define metadata for the blob.
    myBlob.Metadata["category"] = "quotes";
    myBlob.Metadata["owner"] = "George Bernard Shaw";

    // At this point, myBlob still has no metadata.
    // Set the blob's metadata.
    // Use aResult to determine when this asynchronous call has completed.
    IAsyncResult aResult = myBlob.BeginSetMetadata(Eg_BeginSetMetadataCallback, myBlob);

    // The metatdata won't appear on the blob until the asynchronous call has completed.
    while (!aResult.IsCompleted)
    {
        // The calling thread can perfrom other work while the asynchronous call completes.
        Thread.Sleep(100);
    }

    // Verify that myBlob's metadata has been populated by enumerating it's metadata.
    foreach (var metadataKey in myBlob.Metadata.Keys)
    {
        Console.WriteLine("Metadata name:\t" + metadataKey.ToString());
        1Console.WriteLine("Metadata value:\t" + myBlob.Metadata.Get(metadataKey.ToString()));
    }
}

private void Eg_BeginSetMetadataCallback(IAsyncResult result)
{
    CloudBlob blob = (CloudBlob)result.AsyncState;
    blob.EndSetMetadata(result);
}

The BeginSetMetadata method writes the metadata values that are specified by the blob's Metadata property to the service. Note that setting the Metadata property sets metadata values on the blob reference only; you must call BeginSetMetadata or SetMetadata to write them to the service.


Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Development Platforms

Windows Vista, Windows 7, Windows Server 2008, Windows 8.1, Windows Server 2012 R2, Windows 8 and Windows Server 2012

 

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft