Delen via


Een blobcontainer maken met .NET

Blobs in Azure Storage worden georganiseerd in containers. Voordat u een blob kunt uploaden, moet u eerst een container maken. In dit artikel wordt beschreven hoe u containers maakt met de Azure Storage-clientbibliotheek voor .NET.

Vereisten

Uw omgeving instellen

Als u geen bestaand project hebt, ziet u in deze sectie hoe u een project instelt voor gebruik met de Azure Blob Storage-clientbibliotheek voor .NET. De stappen omvatten pakketinstallatie, het toevoegen van using instructies en het maken van een geautoriseerd clientobject. Zie Aan de slag met Azure Blob Storage en .NET voor meer informatie.

Pakketten installeren

Installeer vanuit uw projectmap pakketten voor de Azure Blob Storage- en Azure Identity-clientbibliotheken met behulp van de dotnet add package opdracht. Het Azure.Identity-pakket is nodig voor verbindingen zonder wachtwoord met Azure-services.

dotnet add package Azure.Storage.Blobs
dotnet add package Azure.Identity

Voeg using-instructies toe

Voeg deze using instructies toe aan het begin van het codebestand:

using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;

Voor sommige codevoorbeelden in dit artikel zijn mogelijk aanvullende using instructies vereist.

Een clientobject maken

Als u een app wilt verbinden met Blob Storage, maakt u een exemplaar van BlobServiceClient. In het volgende voorbeeld ziet u hoe u een clientobject maakt met behulp van DefaultAzureCredential autorisatie:

public BlobServiceClient GetBlobServiceClient(string accountName)
{
    BlobServiceClient client = new(
        new Uri($"https://{accountName}.blob.core.windows.net"),
        new DefaultAzureCredential());

    return client;
}

U kunt ook een serviceclient registreren voor afhankelijkheidsinjectie in een .NET-app. Zie Clientobjecten maken en beheren die interactie hebben met gegevensbronnen voor meer informatie over het maken en beheren van clientobjecten.

Autorisatie

Het autorisatiemechanisme moet over de benodigde machtigingen beschikken om een container te maken. Voor autorisatie met Microsoft Entra ID (aanbevolen) hebt u ingebouwde Azure RBAC-rol Opslagblobgegevensbijdrager of hoger nodig. Zie de autorisatierichtlijnen voor Create Container (REST API) voor meer informatie.

Over naamgeving van containers

Een containernaam moet een geldige DNS-naam zijn, omdat deze deel uitmaakt van de unieke URI die wordt gebruikt om de container of de bijbehorende blobs te adresseren. Volg deze regels bij het benoemen van een container:

  • Containernamen kunnen tussen 3 en 63 tekens lang zijn.
  • Containernamen moeten beginnen met een letter of cijfer en mogen alleen kleine letters, cijfers en het streepje (-) bevatten.
  • Opeenvolgende streepjes zijn niet toegestaan in containernamen.

De URI voor een containerresource is als volgt ingedeeld:

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

Een container maken

Als u een container wilt maken, roept u een van de volgende methoden van de BlobServiceClient klasse aan:

U kunt ook een container maken met behulp van een van de volgende methoden uit de BlobContainerClient klasse:

Met deze methoden wordt een uitzondering gegenereerd als er al een container met dezelfde naam bestaat.

Containers worden direct onder het opslagaccount gemaakt. Het is niet mogelijk om één container onder een andere container te nesten.

In het volgende voorbeeld wordt een BlobServiceClient object gebruikt om asynchroon een container te maken:

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

De hoofdcontainer maken

Een hoofdcontainer fungeert als een standaardcontainer voor uw opslagaccount. Elk opslagaccount kan één hoofdcontainer hebben, die de naam moet hebben $root. De hoofdcontainer moet expliciet worden gemaakt of verwijderd.

U kunt verwijzen naar een blob die is opgeslagen in de hoofdcontainer zonder de naam van de hoofdcontainer op te slaan. Met de hoofdcontainer kunt u verwijzen naar een blob op het hoogste niveau van de opslagaccounthiërarchie. U kunt bijvoorbeeld verwijzen naar een blob die zich op de volgende manier in de hoofdcontainer bevindt:

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

In het volgende voorbeeld wordt de hoofdcontainer synchroon gemaakt:

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

Resources

Zie de volgende resources voor meer informatie over het maken van een container met behulp van de Azure Blob Storage-clientbibliotheek voor .NET.

REST API-bewerkingen

De Azure SDK voor .NET bevat bibliotheken die zijn gebaseerd op de Azure REST API, zodat u kunt communiceren met REST API-bewerkingen via bekende .NET-paradigma's. De clientbibliotheekmethoden voor het maken van een container gebruiken de volgende REST API-bewerking:

  • Container maken (REST API)

Clientbibliotheekbronnen