Создание контейнера BLOB-объектов с помощью .NET
Большие двоичные объекты в службе хранилища Azure упорядочиваются в контейнеры. Прежде чем вы сможете отправить большой двоичный объект, сперва необходимо создать контейнер. В этой статье приводятся сведения о создании и удалении контейнеров с помощью клиентской библиотеки службы хранилища Azure для .NET.
Предварительные требования
- В этой статье предполагается, что у вас уже есть проект, настроенный для работы с клиентской библиотекой Хранилище BLOB-объектов Azure для .NET. Дополнительные сведения о настройке проекта, включая установку пакета, добавление
using
директив и создание авторизованного клиентского объекта, см. в статье Начало работы с Хранилище BLOB-объектов Azure и .NET. - Механизм авторизации должен иметь разрешения на создание контейнера BLOB-объектов. Дополнительные сведения см. в руководстве по авторизации для следующей операции REST API:
Сведения об именовании контейнеров
Имя контейнера должно быть допустимым DNS-именем, поскольку оно является частью уникального URI, используемого для адресации контейнера или его больших двоичных объектов. При присвоении имени контейнеру следуйте нижеприведенным правилам:
- Имена контейнеров могут содержать от 3 до 63 символов.
- Имена контейнеров должны начинаться с буквы или цифры и могут содержать только строчные буквы, цифры и тире (-).
- Последовательные тире не допускаются в именах контейнеров.
URI для ресурса контейнера имеет следующий формат:
https://my-account-name.blob.core.windows.net/my-container-name
Создание контейнера
Чтобы создать контейнер, вызовите один из следующих методов из BlobServiceClient
класса :
Вы также можете создать контейнер, используя один из следующих методов из BlobContainerClient
класса :
Указанные методы вызывают исключение в случаях, если контейнер с таким именем уже существует.
Контейнеры создаются для учетной записи хранилища немедленно. Нельзя вложить один контейнер в другой.
В следующем примере объект используется BlobServiceClient
для асинхронного создания контейнера:
//-------------------------------------------------
// Create a container
//-------------------------------------------------
private static async Task<BlobContainerClient> CreateSampleContainerAsync(BlobServiceClient blobServiceClient)
{
// Name the sample container based on new GUID to ensure uniqueness.
// The container name must be lowercase.
string containerName = "container-" + Guid.NewGuid();
try
{
// Create the container
BlobContainerClient container = await blobServiceClient.CreateBlobContainerAsync(containerName);
if (await container.ExistsAsync())
{
Console.WriteLine("Created container {0}", container.Name);
return container;
}
}
catch (RequestFailedException e)
{
Console.WriteLine("HTTP error code {0}: {1}",
e.Status, e.ErrorCode);
Console.WriteLine(e.Message);
}
return null;
}
Создание корневого контейнера
Корневой контейнер является контейнером по умолчанию для вашей учетной записи хранилища. У каждой учетной записи хранения может быть один корневой контейнер, который должен называться $root. Корневой контейнер должен быть явным образом создан или удален.
Вы можете ссылаться на большой двоичный объект, хранящийся в корневом контейнере, не включая имя корневого контейнера. Корневой контейнер позволяет ссылаться на большой двоичный объект на верхнем уровне иерархии учетной записи хранения. К примеру, вы можете ссылаться на большой двоичный объект, находящийся в корневом контейнере, следующим образом:
https://myaccount.blob.core.windows.net/default.html
В нижеприведенном примере корневой контейнер создается синхронно:
//-------------------------------------------------
// Create root container
//-------------------------------------------------
private static void CreateRootContainer(BlobServiceClient blobServiceClient)
{
try
{
// Create the root container or handle the exception if it already exists
BlobContainerClient container = blobServiceClient.CreateBlobContainer("$root");
if (container.Exists())
{
Console.WriteLine("Created root container.");
}
}
catch (RequestFailedException e)
{
Console.WriteLine("HTTP error code {0}: {1}",
e.Status, e.ErrorCode);
Console.WriteLine(e.Message);
}
}
Ресурсы
Дополнительные сведения о создании контейнера с помощью клиентской библиотеки Хранилище BLOB-объектов Azure для .NET см. в следующих ресурсах.
Операции REST API
Пакет Azure SDK для .NET содержит библиотеки, которые создаются на основе REST API Azure, что позволяет взаимодействовать с операциями REST API через знакомые парадигмы .NET. Методы клиентской библиотеки для создания контейнера используют следующую операцию REST API:
- Создание контейнера (REST API)