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?
Blob and Container are two different types of storage in Azure. Blobs are a more lightweight storage option that can be used to store individual pieces of data. Containers, on the other hand, are a more robust storage option that can be used to store applications, services, and workloads.
To create a container, expand the storage account you created in the proceeding step. Select Blob Containers, right-click and select Create Blob Container. Enter the name for your blob container. See the Create a container section for a list of rules and restrictions on naming blob containers.
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:
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.
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();
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With