14

I have a requirement whereby on creation of a company an associated blob storage container is created in my storageaccount with the container name set to the string variable passed in. I have tried the following:

public void AddCompanyStorage(string subDomain)
    {
        //get the storage account.
        CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
            System.Configuration.ConfigurationManager.AppSettings["StorageConnectionString"].ToString());

        //blob client now
        CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();            

        //the container for this is companystyles
        CloudBlobContainer container = new CloudBlobContainer("https://mystore.blob.core.windows.net/" + subDomain);
    }

This however has not created the container as I expected, am I going about this in the wrong manner? Is this possible?

2 Answers 2

35
    public void AddCompanyStorage(string subDomain)
        {
            //get the storage account.
            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
                System.Configuration.ConfigurationManager.AppSettings["StorageConnectionString"].ToString());

            //blob client now
            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();            

            //the container for this is companystyles
           CloudBlobContainer container = blobClient.GetContainerReference(subDomain);

            //Create a new container, if it does not exist
           container.CreateIfNotExists();
        } 

Follow the guidline for container names:

  • A container name must be a valid DNS name, conforming to the
    following naming rules: Container names must start with a letter or
    number, and can contain only letters, numbers, and the dash (-)
    character.
  • Every dash (-) character must be immediately preceded and followed by a letter or number; consecutive dashes are not permitted in container names.

  • All letters in a container name must be lowercase.

  • Container names must be from 3 through 63 characters long.

Sign up to request clarification or add additional context in comments.

2 Comments

Cheers had just found this on other post :)
One minor error in your sample code; the method on CloudBlobContainer is called CreateIfNotExists (not Exist). Otherwise thanks, good example.
4
CloudBlobContainer container = new CloudBlobContainer("https://mystore.blob.core.windows.net/" + subDomain);

This just creates an instance of CloudBlobContainer object. To create a container in your storage account, you would need to call CreateIfNotExists or Create function on this object.

Try this code instead:

public void AddCompanyStorage(string subDomain)
    {
        //get the storage account.
        CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
            System.Configuration.ConfigurationManager.AppSettings["StorageConnectionString"].ToString());

        //blob client now
        CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();            

        //the container for this is companystyles
        CloudBlobContainer container = blobClient.GetContainerReference(subDomain);
        container.CreateIfNotExists();

    }

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.