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:
- Create Container (REST-API)