Schnellstart: Azure Blob Storage-Clientbibliothek v12 für .NETQuickstart: Azure Blob storage client library v12 for .NET

Erfahren Sie etwas über die ersten Schritte mit der Azure Blob Storage-Clientbibliothek v12 für .NET.Get started with the Azure Blob storage client library v12 for .NET. Azure Blob Storage ist die Objektspeicherlösung von Microsoft für die Cloud.Azure Blob storage is Microsoft's object storage solution for the cloud. Führen Sie die Schritte zum Installieren des Pakets aus, und testen Sie den Beispielcode für grundlegende Aufgaben.Follow steps to install the package and try out example code for basic tasks. Blobspeicher ist für die Speicherung großer Mengen unstrukturierter Daten optimiert.Blob storage is optimized for storing massive amounts of unstructured data.

Mit der Azure Blob Storage-Clientbibliothek v12 für .NET ist Folgendes möglich:Use the Azure Blob storage client library v12 for .NET to:

  • Erstellen eines ContainersCreate a container
  • Hochladen eines Blobs in Azure StorageUpload a blob to Azure Storage
  • Auflisten aller Blobs in einem ContainerList all of the blobs in a container
  • Herunterladen des Blobs auf den lokalen ComputerDownload the blob to your local computer
  • Löschen eines ContainersDelete a container

Zusätzliche Ressourcen:Additional resources:

Hinweis

Die in diesem Artikel beschriebenen Funktionen sind jetzt für Konten mit einem hierarchischen Namespace verfügbar.The features described in this article are now available to accounts that have a hierarchical namespace. Weitere Informationen zu Einschränkungen finden Sie im Artikel Verfügbare Blob Storage-Features in Azure Data Lake Storage Gen2.To review limitations, see the Blob storage features available in Azure Data Lake Storage Gen2 article.

VoraussetzungenPrerequisites

EinrichtenSetting up

In diesem Abschnitt wird beschrieben, wie ein Projekt zur Verwendung mit der Azure Blob Storage-Clientbibliothek v12 für .NET vorbereitet wird.This section walks you through preparing a project to work with the Azure Blob storage client library v12 for .NET.

Erstellen des ProjektsCreate the project

Erstellen Sie eine .NET Core-Anwendung mit dem Namen BlobQuickstartV12.Create a .NET Core application named BlobQuickstartV12.

  1. Verwenden Sie in einem Konsolenfenster (z. B. cmd, PowerShell oder Bash) den Befehl dotnet new zum Erstellen einer neuen Konsolen-App mit dem Namen BlobQuickstartV12.In a console window (such as cmd, PowerShell, or Bash), use the dotnet new command to create a new console app with the name BlobQuickstartV12. Dieser Befehl erstellt ein einfaches „Hallo Welt“-C#-Projekt mit einer einzigen Quelldatei: Program.cs.This command creates a simple "Hello World" C# project with a single source file: Program.cs.

    dotnet new console -n BlobQuickstartV12
    
  2. Wechseln Sie zum neu erstellten Verzeichnis BlobQuickstartV12.Switch to the newly created BlobQuickstartV12 directory.

    cd BlobQuickstartV12
    
  3. Erstellen Sie im Verzeichnis BlobQuickstartV12 ein weiteres Verzeichnis namens data.In side the BlobQuickstartV12 directory, create another directory called data. In diesem werden die Blobdatendateien erstellt und gespeichert.This is where the blob data files will be created and stored.

    mkdir data
    

Installieren des PaketsInstall the package

Installieren Sie im Anwendungsverzeichnis mit dem Befehl dotnet add package das Paket für die Azure Blob Storage-Clientbibliothek für .NET.While still in the application directory, install the Azure Blob storage client library for .NET package by using the dotnet add package command.

dotnet add package Azure.Storage.Blobs

Einrichten des App-FrameworksSet up the app framework

Über das Projektverzeichnis:From the project directory:

  1. Öffnen Sie die Datei Program.cs im Editor.Open the Program.cs file in your editor
  2. Entfernen Sie die Anweisung Console.WriteLine("Hello World!");.Remove the Console.WriteLine("Hello World!"); statement
  3. Fügen Sie Anweisungen vom Typ using hinzu.Add using directives
  4. Aktualisieren der Main-Methodendeklaration zur Unterstützung von asynchronem CodeUpdate the Main method declaration to support async code

Der Code lautet wie folgt:Here's the code:

using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using System;
using System.IO;
using System.Threading.Tasks;

namespace BlobQuickstartV12
{
    class Program
    {
        static async Task Main()
        {
        }
    }
}

Kopieren Ihrer Anmeldeinformationen aus dem Azure-PortalCopy your credentials from the Azure portal

Wenn die Beispielanwendung eine Anforderung an Azure Storage sendet, muss diese autorisiert werden.When the sample application makes a request to Azure Storage, it must be authorized. Fügen Sie zum Autorisieren einer Anforderung die Anmeldeinformationen für Ihr Speicherkonto in Form einer Verbindungszeichenfolge hinzu.To authorize a request, add your storage account credentials to the application as a connection string. Führen Sie zum Anzeigen der Anmeldeinformationen Ihres Speicherkontos die folgenden Schritte aus:View your storage account credentials by following these steps:

  1. Melden Sie sich beim Azure-Portal an.Sign in to the Azure portal.

  2. Suchen Sie nach Ihrem Speicherkonto.Locate your storage account.

  3. Wählen Sie im Abschnitt Einstellungen der Speicherkontoübersicht die Option Zugriffsschlüssel.In the Settings section of the storage account overview, select Access keys. Hier können Sie Ihre Kontozugriffsschlüssel und die vollständige Verbindungszeichenfolge für jeden Schlüssel anzeigen.Here, you can view your account access keys and the complete connection string for each key.

  4. Suchen Sie unter key1 nach dem Wert für die Verbindungszeichenfolge, und wählen Sie dann die Schaltfläche Kopieren, um die Verbindungszeichenfolge zu kopieren.Find the Connection string value under key1, and select the Copy button to copy the connection string. Der Wert der Verbindungszeichenfolge wird in einem späteren Schritt einer Umgebungsvariablen hinzugefügt.You will add the connection string value to an environment variable in the next step.

    Screenshot: Kopieren einer Verbindungszeichenfolge aus dem Azure-Portal

Konfigurieren der SpeicherverbindungszeichenfolgeConfigure your storage connection string

Schreiben Sie die Verbindungszeichenfolge nach dem Kopieren in eine neue Umgebungsvariable auf dem lokalen Computer, auf dem die Anwendung ausgeführt wird.After you have copied your connection string, write it to a new environment variable on the local machine running the application. Öffnen Sie zum Festlegen der Umgebungsvariablen ein Konsolenfenster, und befolgen Sie die Anleitung für Ihr Betriebssystem.To set the environment variable, open a console window, and follow the instructions for your operating system. Ersetzen Sie <yourconnectionstring> durch Ihre Verbindungszeichenfolge.Replace <yourconnectionstring> with your actual connection string.

WindowsWindows

setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"

Sie müssen nach dem Hinzufügen der Umgebungsvariablen unter Windows eine neue Instanz des Befehlsfensters öffnen.After you add the environment variable in Windows, you must start a new instance of the command window.

LinuxLinux

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

macOSmacOS

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

Neustarten von ProgrammenRestart programs

Nachdem Sie die Umgebungsvariable hinzugefügt haben, starten Sie alle ausgeführten Programme neu, in denen die Umgebungsvariable gelesen werden muss.After you add the environment variable, restart any running programs that will need to read the environment variable. Starten Sie beispielsweise die Entwicklungsumgebung oder den Editor neu, bevor Sie fortfahren.For example, restart your development environment or editor before continuing.

ObjektmodellObject model

Azure Blob Storage ist für die Speicherung großer Mengen unstrukturierter Daten optimiert.Azure Blob storage is optimized for storing massive amounts of unstructured data. Unstrukturierte Daten sind Daten, die keinem bestimmten Datenmodell und keiner bestimmten Definition entsprechen (also beispielsweise Text- oder Binärdaten).Unstructured data is data that does not adhere to a particular data model or definition, such as text or binary data. Blob Storage bietet drei Typen von Ressourcen:Blob storage offers three types of resources:

  • Das SpeicherkontoThe storage account
  • Einen Container im SpeicherkontoA container in the storage account
  • Ein Blob im ContainerA blob in the container

Im folgenden Diagramm ist die Beziehung zwischen diesen Ressourcen dargestellt.The following diagram shows the relationship between these resources.

Diagramm der Blob Storage-Architektur

Verwenden Sie die folgenden .NET-Klassen zur Interaktion mit folgenden Ressourcen:Use the following .NET classes to interact with these resources:

  • BlobServiceClient: Die BlobServiceClient-Klasse ermöglicht Ihnen, Azure Storage-Ressourcen und Blobcontainer zu bearbeiten.BlobServiceClient: The BlobServiceClient class allows you to manipulate Azure Storage resources and blob containers.
  • BlobContainerClient: Die BlobContainerClient-Klasse ermöglicht Ihnen, Azure Storage-Container und deren Blobs zu bearbeiten.BlobContainerClient: The BlobContainerClient class allows you to manipulate Azure Storage containers and their blobs.
  • BlobClient: Die BlobClient-Klasse ermöglicht Ihnen, Azure Storage-Blobs zu bearbeiten.BlobClient: The BlobClient class allows you to manipulate Azure Storage blobs.
  • BlobDownloadInfo: Die BlobDownloadInfo-Klasse stellt die Eigenschaften und den Inhalt dar, die beim Herunterladen eines Blobs zurückgegeben werden.BlobDownloadInfo: The BlobDownloadInfo class represents the properties and content returned from downloading a blob.

CodebeispieleCode examples

Mit den Beispielcodeausschnitten wird veranschaulicht, wie folgende Vorgänge mit der Azure Blob Storage-Clientbibliothek für .NET durchgeführt werden:These example code snippets show you how to perform the following with the Azure Blob storage client library for .NET:

Abrufen der VerbindungszeichenfolgeGet the connection string

Der folgende Code ruft die Verbindungszeichenfolge für das Speicherkonto aus der Umgebungsvariable ab, die im Abschnitt Konfigurieren der Speicherverbindungszeichenfolge erstellt wurde.The code below retrieves the connection string for the storage account from the environment variable created in the Configure your storage connection string section.

Fügen Sie diesen Code in der Main-Methode hinzu:Add this code inside the Main method:

Console.WriteLine("Azure Blob storage v12 - .NET quickstart sample\n");

// Retrieve the connection string for use with the application. The storage
// connection string is stored in an environment variable on the machine
// running the application called AZURE_STORAGE_CONNECTION_STRING. If the
// environment variable is created after the application is launched in a
// console or with Visual Studio, the shell or application needs to be closed
// and reloaded to take the environment variable into account.
string connectionString = Environment.GetEnvironmentVariable("AZURE_STORAGE_CONNECTION_STRING");

Erstellen eines ContainersCreate a container

Legen Sie einen Namen für den neuen Container fest.Decide on a name for the new container. Der folgende Code hängt einen GUID-Wert an den Containernamen an, damit dieser eindeutig ist.The code below appends a GUID value to the container name to ensure that it is unique.

Wichtig

Die Containernamen müssen klein geschrieben werden.Container names must be lowercase. Weitere Informationen zum Benennen von Containern und Blobs finden Sie unter Naming and Referencing Containers, Blobs, and Metadata (Benennen von Containern, Blobs und Metadaten und Verweisen auf diese).For more information about naming containers and blobs, see Naming and Referencing Containers, Blobs, and Metadata.

Erstellen Sie eine Instanz der BlobServiceClient-Klasse.Create an instance of the BlobServiceClient class. Rufen Sie dann die CreateBlobContainerAsync-Methode auf, um den Container in Ihrem Speicherkonto zu erstellen.Then, call the CreateBlobContainerAsync method to create the container in your storage account.

Fügen Sie diesen Code am Ende der Main-Methode hinzu:Add this code to the end of the Main method:

// Create a BlobServiceClient object which will be used to create a container client
BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);

//Create a unique name for the container
string containerName = "quickstartblobs" + Guid.NewGuid().ToString();

// Create the container and return a container client object
BlobContainerClient containerClient = await blobServiceClient.CreateBlobContainerAsync(containerName);

Hochladen von Blobs in einen ContainerUpload blobs to a container

Der folgende Codeausschnitt führt folgende Aktionen durch:The following code snippet:

  1. Erstellen einer Textdatei im lokalen Verzeichnis dataCreates a text file in the local data directory.
  2. Abrufen eines Verweises auf ein BlobClient-Objekt durch Aufrufen der GetBlobClient-Methode für den Container aus dem Abschnitt Erstellen eines ContainersGets a reference to a BlobClient object by calling the GetBlobClient method on the container from the Create a container section.
  3. Hochladen der lokalen Textdatei in das Blob durch Aufrufen der UploadAsync-Methode.Uploads the local text file to the blob by calling the UploadAsync method. Mit dieser Methode wird das Blob erstellt, falls es nicht vorhanden ist, oder überschrieben, sofern es bereits vorhanden ist.This method creates the blob if it doesn't already exist, and overwrites it if it does.

Fügen Sie diesen Code am Ende der Main-Methode hinzu:Add this code to the end of the Main method:

// Create a local file in the ./data/ directory for uploading and downloading
string localPath = "./data/";
string fileName = "quickstart" + Guid.NewGuid().ToString() + ".txt";
string localFilePath = Path.Combine(localPath, fileName);

// Write text to the file
await File.WriteAllTextAsync(localFilePath, "Hello, World!");

// Get a reference to a blob
BlobClient blobClient = containerClient.GetBlobClient(fileName);

Console.WriteLine("Uploading to Blob storage as blob:\n\t {0}\n", blobClient.Uri);

// Open the file and upload its data
using FileStream uploadFileStream = File.OpenRead(localFilePath);
await blobClient.UploadAsync(uploadFileStream, true);
uploadFileStream.Close();

Auflisten der Blobs in einem ContainerList the blobs in a container

Listen Sie die Blobs im Container auf, indem Sie die GetBlobsAsync-Methode aufrufen.List the blobs in the container by calling the GetBlobsAsync method. In diesem Fall wurde dem Container nur ein Blob hinzugefügt, sodass beim Auflisten auch nur ein Blob zurückgegeben wird.In this case, only one blob has been added to the container, so the listing operation returns just that one blob.

Fügen Sie diesen Code am Ende der Main-Methode hinzu:Add this code to the end of the Main method:

Console.WriteLine("Listing blobs...");

// List all blobs in the container
await foreach (BlobItem blobItem in containerClient.GetBlobsAsync())
{
    Console.WriteLine("\t" + blobItem.Name);
}

Herunterladen von BlobsDownload blobs

Laden Sie das zuvor erstellte Blob herunter, indem Sie die DownloadAsync-Methode aufrufen.Download the previously created blob by calling the DownloadAsync method. Im Beispielcode wird das Suffix „DOWNLOADED“ an den Dateinamen angefügt, damit beide Dateien im lokalen Dateisystem angezeigt werden können.The example code adds a suffix of "DOWNLOADED" to the file name so that you can see both files in local file system.

Fügen Sie diesen Code am Ende der Main-Methode hinzu:Add this code to the end of the Main method:

// Download the blob to a local file
// Append the string "DOWNLOADED" before the .txt extension 
// so you can compare the files in the data directory
string downloadFilePath = localFilePath.Replace(".txt", "DOWNLOADED.txt");

Console.WriteLine("\nDownloading blob to\n\t{0}\n", downloadFilePath);

// Download the blob's contents and save it to a file
BlobDownloadInfo download = await blobClient.DownloadAsync();

using (FileStream downloadFileStream = File.OpenWrite(downloadFilePath))
{
    await download.Content.CopyToAsync(downloadFileStream);
    downloadFileStream.Close();
}

Löschen eines ContainersDelete a container

Im folgenden Code werden die von der App erstellten Ressourcen bereinigt, indem der gesamte Container mithilfe von DeleteAsync gelöscht wird.The following code cleans up the resources the app created by deleting the entire container by using DeleteAsync. Außerdem werden die von der App erstellten lokalen Dateien gelöscht.It also deletes the local files created by the app.

Die App wird unterbrochen, um auf Benutzereingaben zu warten, indem Console.ReadLine aufgerufen wird, bevor Blob, Container und lokale Dateien gelöscht werden.The app pauses for user input by calling Console.ReadLine before it deletes the blob, container, and local files. Dies ist eine gute Möglichkeit, um zu überprüfen, ob die Ressourcen tatsächlich ordnungsgemäß erstellt wurden, bevor sie gelöscht werden.This is a good chance to verify that the resources were actually created correctly, before they are deleted.

Fügen Sie diesen Code am Ende der Main-Methode hinzu:Add this code to the end of the Main method:

// Clean up
Console.Write("Press any key to begin clean up");
Console.ReadLine();

Console.WriteLine("Deleting blob container...");
await containerClient.DeleteAsync();

Console.WriteLine("Deleting the local source and downloaded files...");
File.Delete(localFilePath);
File.Delete(downloadFilePath);

Console.WriteLine("Done");

Ausführen des CodesRun the code

Mit dieser App wird in Ihrem lokalen Ordner data eine Testdatei erstellt und in Blob Storage hochgeladen.This app creates a test file in your local data folder and uploads it to Blob storage. Anschließend werden im Beispiel die Blobs im Container aufgelistet, und die Datei wird mit einem neuen Namen heruntergeladen, damit Sie die alte und neue Datei vergleichen können.The example then lists the blobs in the container and downloads the file with a new name so that you can compare the old and new files.

Navigieren Sie andernfalls zu Ihrem Anwendungsverzeichnis, erstellen Sie die Anwendung, und führen Sie sie aus.Navigate to your application directory, then build and run the application.

dotnet build
dotnet run

Die Ausgabe der App sieht etwa wie das folgende Beispiel aus:The output of the app is similar to the following example:

Azure Blob storage v12 - .NET quickstart sample

Uploading to Blob storage as blob:
         https://mystorageacct.blob.core.windows.net/quickstartblobs60c70d78-8d93-43ae-954d-8322058cfd64/quickstart2fe6c5b4-7918-46cb-96f4-8c4c5cb2fd31.txt

Listing blobs...
        quickstart2fe6c5b4-7918-46cb-96f4-8c4c5cb2fd31.txt

Downloading blob to
        ./data/quickstart2fe6c5b4-7918-46cb-96f4-8c4c5cb2fd31DOWNLOADED.txt

Press any key to begin clean up
Deleting blob container...
Deleting the local source and downloaded files...
Done

Überprüfen Sie den Ordner data vor dem Start der Bereinigung auf die beiden Dateien.Before you begin the clean up process, check your data folder for the two files. Sie können sie öffnen und sich vergewissern, dass sie identisch sind.You can open them and observe that they are identical.

Nachdem Sie die Dateien erfolgreich überprüft haben, drücken Sie die EINGABETASTE, um die Testdateien zu löschen und die Demo zu beenden.After you've verified the files, press the Enter key to delete the test files and finish the demo.

Nächste SchritteNext steps

In dieser Schnellstartanleitung wurde beschrieben, wie Sie Blobs per .NET hochladen, herunterladen und auflisten.In this quickstart, you learned how to upload, download, and list blobs using .NET.

Weitere Beispiel-Apps für Blob Storage finden Sie unter:To see Blob storage sample apps, continue to: