Создание программно-ориентированного хранилища
У меня есть требование, согласно которому при создании компании в моем хранилище хранится связанный контейнер хранения блоков с именем контейнера, установленным на переданную строчную переменную. Я пробовал следующее:
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);
}
Это, однако, не создало контейнер, как я ожидал, не так ли? Возможно ли это?
Приветствия
Ответы
Ответ 1
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();
}
Следуйте указаниям для имен контейнеров:
- Имя контейнера должно быть допустимым DNS-именем, соответствующим значению
следующие правила именования: имена контейнеров должны начинаться с буквы или
номер и может содержать только буквы, цифры и тире (-)
характер.
-
Каждому тире (-) персонажу необходимо немедленно предшествовать и следовать
письмо или номер; последовательные тире не разрешены в контейнере
имена.
-
Все буквы в имени контейнера должны быть строчными.
-
Имена контейнеров должны содержать от 3 до 63 символов.
Ответ 2
CloudBlobContainer container = new CloudBlobContainer("https://mystore.blob.core.windows.net/" + subDomain);
Это просто создает экземпляр объекта CloudBlobContainer
. Чтобы создать контейнер в учетной записи хранилища, вам необходимо вызвать CreateIfNotExists
или Create
для этого объекта.
Попробуйте использовать этот код:
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();
}