CloudBlobContainer.BeginCreateIfNotExist Method (BlobRequestOptions, AsyncCallback, Object) |
See Also Example |
Begins an asynchronous request to create the container if it does not already exist, using a conditional request based on the BlobRequestOptions that you specify. Namespace: Microsoft.WindowsAzure.StorageClient
Assembly: Microsoft.WindowsAzure.StorageClient (in Microsoft.WindowsAzure.StorageClient.dll)
Usage
Visual Basic |
---|
Dim instance As CloudBlobContainer Dim options As BlobRequestOptions Dim callback As AsyncCallback Dim state As Object Dim returnValue As IAsyncResult returnValue = instance.BeginCreateIfNotExist(options, callback, state) |
Syntax
Visual Basic |
---|
Public Function BeginCreateIfNotExist ( _ options As BlobRequestOptions, _ callback As AsyncCallback, _ state As Object _ ) As IAsyncResult |
C# |
---|
public IAsyncResult BeginCreateIfNotExist ( BlobRequestOptions options, AsyncCallback callback, Object state ) |
C++ |
---|
public: IAsyncResult^ BeginCreateIfNotExist ( BlobRequestOptions^ options, AsyncCallback^ callback, Object^ state ) |
J# |
---|
JScript |
---|
Parameters
- options
Type: Microsoft.WindowsAzure.StorageClient.BlobRequestOptions
An object that specifies any additional options for the request.
- 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 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.