Tworzenie kontenera obiektów blob przy użyciu platformy .NET

Obiekty blob w usłudze Azure Storage są zorganizowane w kontenery. Przed przekazaniem obiektu blob należy najpierw utworzyć kontener. W tym artykule przedstawiono sposób tworzenia kontenerów za pomocą biblioteki klienta usługi Azure Storage dla platformy .NET.

Wymagania wstępne

  • W tym artykule założono, że masz już skonfigurowany projekt do pracy z biblioteką klienta Azure Blob Storage dla platformy .NET. Aby dowiedzieć się więcej na temat konfigurowania projektu, w tym instalacji pakietu, dodawania using dyrektyw i tworzenia autoryzowanego obiektu klienta, zobacz Wprowadzenie do Azure Blob Storage i platformy .NET.
  • Mechanizm autoryzacji musi mieć uprawnienia do tworzenia kontenera obiektów blob. Aby dowiedzieć się więcej, zobacz wskazówki dotyczące autoryzacji dla następującej operacji interfejsu API REST:

Informacje o nazewnictwie kontenerów

Nazwa kontenera musi być prawidłową nazwą DNS, ponieważ stanowi ona część unikatowego identyfikatora URI używanego do adresowania kontenera lub jego obiektów blob. Postępuj zgodnie z następującymi regułami podczas nazewnictwa kontenera:

  • Nazwy kontenerów mogą zawierać od 3 do 63 znaków.
  • Nazwy kontenerów muszą zaczynać się literą lub cyfrą i mogą zawierać tylko małe litery, cyfry i znak kreski (-).
  • Kolejne znaki kreski nie są dozwolone w nazwach kontenerów.

Identyfikator URI zasobu kontenera jest sformatowany w następujący sposób:

https://my-account-name.blob.core.windows.net/my-container-name

Tworzenie kontenera

Aby utworzyć kontener, wywołaj jedną z następujących metod z BlobServiceClient klasy:

Kontener można również utworzyć przy użyciu jednej z następujących metod z BlobContainerClient klasy:

Te metody zgłaszają wyjątek, jeśli kontener o tej samej nazwie już istnieje.

Kontenery są tworzone natychmiast pod kontem magazynu. Nie można zagnieżdżać jednego kontenera pod innym.

W poniższym przykładzie użyto BlobServiceClient obiektu do utworzenia kontenera asynchronicznie:

//-------------------------------------------------
// 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;
}

Tworzenie kontenera głównego

Kontener główny służy jako domyślny kontener dla konta magazynu. Każde konto magazynu może mieć jeden kontener główny, który musi mieć nazwę $root. Kontener główny musi zostać jawnie utworzony lub usunięty.

Obiekt blob przechowywany w kontenerze głównym można odwoływać się bez uwzględniania nazwy kontenera głównego. Kontener główny umożliwia odwołowanie się do obiektu blob na najwyższym poziomie hierarchii konta magazynu. Na przykład można odwołać się do obiektu blob, który znajduje się w kontenerze głównym w następujący sposób:

https://myaccount.blob.core.windows.net/default.html

Poniższy przykład tworzy synchronicznie kontener główny:

//-------------------------------------------------
// 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);
    }
}

Zasoby

Aby dowiedzieć się więcej na temat tworzenia kontenera przy użyciu biblioteki klienta Azure Blob Storage dla platformy .NET, zobacz następujące zasoby.

Operacje interfejsu API REST

Zestaw Azure SDK dla platformy .NET zawiera biblioteki oparte na interfejsie API REST platformy Azure, które umożliwiają interakcję z operacjami interfejsu API REST za pomocą znanych paradygmatów platformy .NET. Metody biblioteki klienta do tworzenia kontenera używają następującej operacji interfejsu API REST:

Zasoby biblioteki klienta