Begins an asynchronous operation to create a container. 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.BeginCreate(callback, state) |
Syntax
Visual Basic |
---|
Public Function BeginCreate ( _ callback As AsyncCallback, _ state As Object _ ) As IAsyncResult |
C# |
---|
public IAsyncResult BeginCreate ( AsyncCallback callback, Object state ) |
C++ |
---|
public: IAsyncResult^ BeginCreate ( 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.IAsyncResultAn IAsyncResult that references the asynchronous operation.Example
The following code example creates a new container and defines metadata for it, and handles the error in case a container with the same name already exists.
C# | Copy Code |
---|---|
static void CreateContainerAsync(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"] = "video"; //Begin the operation to create the container. container.BeginCreate(CreateContainerCallback, container); } static void CreateContainerCallback(IAsyncResult result) { CloudBlobContainer container = (CloudBlobContainer)result.AsyncState; //End the operation. Handle the error in case the container already exists. try { container.EndCreate(result); Console.WriteLine("Container " + container.Name + " created successfully."); } catch (StorageClientException e) { if (e.ErrorCode == StorageErrorCode.ContainerAlreadyExists) { Console.WriteLine("Cannot create the container because it already exists."); } else { Console.WriteLine(e.ErrorCode); } } } |
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 BeginCreate writes the metadata to the new container, so it's not necessary to also call SetMetadata.
The BeginCreate method throws a StorageClientException if the specified container already exists. The error code returned by the service is ContainerAlreadyExists. If a container with the same name is still being deleted, the service returns error code ContainerBeingDeleted.
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.