Erstellen eines Blobcontainers mit .NET

Blobs in Azure Storage sind in Containern organisiert. Bevor Sie ein Blob hochladen können, müssen Sie zunächst einen Container erstellen. In diesem Artikel wird beschrieben, wie Container mit der Azure Storage-Clientbibliothek für .NET erstellt werden.

Voraussetzungen

  • In diesem Artikel wird davon ausgegangen, dass Sie bereits ein Projekt für die Arbeit mit der Azure Blob Storage-Clientbibliothek für .NET eingerichtet haben. Informationen zum Einrichten Ihres Projekts, einschließlich der Paketinstallation, dem Hinzufügen von using-Anweisungen und dem Erstellen eines autorisierten Clientobjekts, finden Sie unter Erste Schritte mit Azure Blob Storage und .NET.
  • Der Autorisierungsmechanismus muss über Berechtigungen zum Erstellen eines Blobcontainers verfügen. Weitere Informationen finden Sie im Autorisierungsleitfaden für die folgenden REST-API-Vorgänge:

Informationen zur Containerbenennung

Ein Containername muss ein gültiger DNS-Name sein, da er Teil des eindeutigen URI ist, der für die Adressierung des Containers oder seiner Blobs verwendet wird. Befolgen Sie diese Regeln, wenn Sie einen Container benennen:

  • Containernamen können zwischen 3 und 63 Zeichen lang sein.
  • Containernamen müssen mit einem Buchstaben oder einer Zahl beginnen und dürfen nur Kleinbuchstaben, Zahlen und Bindestriche (-) enthalten.
  • Zwei oder mehr aufeinanderfolgende Bindestriche sind in Containernamen nicht zulässig.

Der URI für eine Containerressource ist wie folgt formatiert:

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

Erstellen eines Containers

Um einen Container zu erstellen, rufen Sie eine der folgenden Methoden in der BlobServiceClient-Klasse auf:

Sie können einen Container auch mit einer der folgenden Methoden in der BlobContainerClient-Klasse erstellen:

Diese Methoden lösen eine Ausnahme aus, wenn ein Container mit demselben Namen bereits vorhanden ist.

Container werden direkt unterhalb des Speicherkontos erstellt. Es ist nicht möglich, einen Container unter einem anderen Container zu schachteln.

Im folgenden Beispiel wird mit dem BlobServiceClient-Objekt ein Container asynchron erstellt:

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

Erstellen des Stammcontainers

Ein Stammcontainer dient als Standardcontainer für Ihr Speicherkonto. Jedes Speicherkonto kann über einen Stammcontainer verfügen, der den Namen $root tragen muss. Der Stammcontainer muss explizit erstellt oder gelöscht werden.

Sie können auf ein Blob verweisen, das im Stammcontainer gespeichert ist, ohne den Namen des Stammcontainers einzubeziehen. Der Stammcontainer ermöglicht das Verweisen auf ein Blob auf der obersten Ebene der Speicherkontohierarchie. Beispielsweise können Sie wie folgt auf ein Blob verweisen, das sich im Stammcontainer befindet:

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

Im folgenden Beispiel wird der Stammcontainer synchron erstellt:

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

Ressourcen

Weitere Informationen zum Erstellen eines Containers mithilfe der Azure Blob Storage-Clientbibliothek für .NET finden Sie in den folgenden Ressourcen.

REST-API-Vorgänge

Das Azure SDK für .NET enthält Bibliotheken, die auf der zugrunde liegenden Azure-REST-API basieren, und ermöglicht Ihnen dadurch die Interaktion mit REST-API-Vorgängen über vertraute .NET-Paradigmen. Die Clientbibliotheksmethoden zum Erstellen eines Containers verwenden den folgenden REST-API-Vorgang:

Ressourcen zur Clientbibliothek