Targeting Azure Storage: Listing 2: Create BlobStorage Account and Blob and Log Container Objects
The following code in the WebRole Default.aspx file's Page_Load event handler obtains the storage account details from the ServiceConfiguraiton.cscfg file (see Listing 1). It creates a BlobStorage account object and a Container named oakleaf2store with public access. It then creates a LogContainer named oakleaf2log with public access--if it doesn't already exist.
// Get the storage account details from the
// ServiceConfiguration.cscfg file
StorageAccountInfo accountInfo =
StorageAccountInfo.
GetDefaultBlobStorageAccountFromConfiguration();
// Create the BlobStorage
BlobStorage blobStorage =
BlobStorage.Create(accountInfo);
// If blob Container doesn't exist, create it
// Container names have DNS character restrictions
blobContainer =
blobStorage.GetBlobContainer(RoleManager.
GetConfigurationSetting("ContainerName"));
// Enable public access to container content
if (!blobContainer.DoesContainerExist())
blobContainer.CreateContainer(new
NameValueCollection(),
ContainerAccessControl.Public);
// Enable public log access
logContainer =
blobStorage.GetBlobContainer(RoleManager.
GetConfigurationSetting("LogContainerName"));
if (logContainer.DoesContainerExist())
{
doWriteLogs = true;
ContainerAccessControl logACL =
logContainer.GetContainerAccessControl();
if (logACL == ContainerAccessControl.Private)
{
logACL = ContainerAccessControl.Public;
logContainer.
SetContainerAccessControl(logACL);
}
}
// Load the GridView with blob metadata
UpdateFileList();