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();
comments powered by Disqus

Featured

Subscribe on YouTube