CloudBlobContainer.BeginCreateIfNotExist Method (AsyncCallback, Object)

Storage Client Library NET API

[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 request to create the container if it does not already exist.

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

Usage

Visual Basic
Dim instance As CloudBlobContainer
Dim callback As AsyncCallback
Dim state As Object
Dim returnValue As IAsyncResult

returnValue = instance.BeginCreateIfNotExist(callback, state)

Syntax

Visual Basic
Public Function BeginCreateIfNotExist ( _
	callback As AsyncCallback, _
	state As Object _
) As IAsyncResult
C#
public IAsyncResult BeginCreateIfNotExist (
	AsyncCallback callback,
	Object state
)
C++
public:
IAsyncResult^ BeginCreateIfNotExist (
	AsyncCallback^ callback, 
	Object^ state
)
J#
JScript

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.

Example

The following code example creates a container if it does not already exist. Note that if the container does already exist, its metadata will not be updated.

C# Copy Code
static void CreateContainerIfNotExistsAsync(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 for the new container.
    CloudBlobContainer container = blobClient.GetContainerReference("newcontainer");

    //Define metadata for the container.
    container.Metadata["media"] = "images";

    //Begin the operation to create the container.
    container.BeginCreateIfNotExist(CreateContainerIfNotExistsCallback, container);
}

static void CreateContainerIfNotExistsCallback(IAsyncResult result)
{
    CloudBlobContainer container = (CloudBlobContainer)result.AsyncState;
    //End the operation and indicate whether the container was created.
    if (container.EndCreateIfNotExist(result))
    {
        Console.WriteLine("Container created successfully.");
    }
    else
    {
        Console.WriteLine("Container was not created because a container with that name already exists.");
    }
}

Remarks

Containers are created immediately beneath the storage account. It's not possible to nest one container beneath another.

You can specify metadata on the container at the time that you created it. In this case, the call to BeginCreateIfNotExist writes the metadata to the new container, so it's not necessary to also call SetMetadata.

You can optionally create a default or root container for your storage account. The root container may be inferred from a URL requesting a blob resource. The root container makes it possible to reference a blob from the top level of the storage account hierarchy, without referencing the container name. To add the root container to your storage account, create a container named $root.


Thread Safety

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

Platforms

Development Platforms

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

Change History

See Also