Schnellstart: Azure Blob Storage-Clientbibliothek v12 mit XamarinQuickstart: Azure Blob storage client library v12 with Xamarin

Hier finden Sie Informationen zu den ersten Schritten mit der Azure Blob Storage-Clientbibliothek v12 mit Xamarin.Get started with the Azure Blob storage client library v12 with Xamarin. 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.

Verwenden Sie die Azure Blob Storage-Clientbibliothek v12 mit Xamarin für Folgendes:Use the Azure Blob storage client library v12 with Xamarin 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 Ihr GerätDownload the blob to your device
  • Löschen eines ContainersDelete a container

Referenzlinks:Reference links:

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 erfahren Sie, wie Sie ein Projekt für die Verwendung mit der Azure Blob Storage-Clientbibliothek v12 mit Xamarin vorbereiten.This section walks you through preparing a project to work with the Azure Blob storage client library v12 with Xamarin.

Erstellen des ProjektsCreate the project

  1. Öffnen Sie Visual Studio, und erstellen Sie eine leere Forms-App.Open Visual Studio and create a Blank Forms App.
  2. Nennen Sie sie wie folgt: BlobQuickstartV12Name it: BlobQuickstartV12

Installieren des PaketsInstall the package

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Ihre Lösung, und wählen Sie NuGet-Pakete verwalten aus.Right-click your solution in the Solution Explorer pane and select Manage NuGet Packages for Solution.
  2. Suchen Sie nach Azure.Storage.Blobs, und installieren Sie für alle Projekte in Ihrer Lösung die neueste stabile Version.Search for Azure.Storage.Blobs and install the latest stable version into all projects in your solution.

Einrichten des App-FrameworksSet up the app framework

Führen Sie im Verzeichnis BlobQuickstartV12 die folgenden Schritte aus:From the BlobQuickstartV12 directory:

  1. Öffnen Sie die Datei MainPage.xaml in Ihrem Editor.Open up the MainPage.xaml file in your editor
  2. Ersetzen Sie alles zwischen <ContentPage></ContentPage> durch Folgendes:Remove everything between the <ContentPage></ContentPage> elements and replace with the below:
<StackLayout HorizontalOptions="Center" VerticalOptions="Center">

    <Button x:Name="uploadButton" Text="Upload Blob" Clicked="Upload_Clicked"  IsEnabled="False"/>
    <Button x:Name="listButton" Text="List Blobs" Clicked="List_Clicked"  IsEnabled="False" />
    <Button x:Name="downloadButton" Text="Download Blob" Clicked="Download_Clicked"  IsEnabled="False" />
    <Button x:Name="deleteButton" Text="Delete Container" Clicked="Delete_Clicked" IsEnabled="False" />

    <Label Text="" x:Name="resultsLabel" HorizontalTextAlignment="Center" Margin="0,20,0,0" TextColor="Red" />
        
</StackLayout>

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

Wenn Sie die Verbindungszeichenfolge kopiert haben, legen Sie sie in der Datei MainPage.xaml.cs auf eine Variable auf Klassenebene fest.After you have copied your connection string, set it to a class level variable in your MainPage.xaml.cs file. Öffnen Sie MainPaage.xaml.cs, und suchen Sie die Variable storageConnectionString.Open up MainPaage.xaml.cs and find the storageConnectionString variable. Ersetzen Sie <yourconnectionstring> durch Ihre Verbindungszeichenfolge.Replace <yourconnectionstring> with your actual connection string.

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

string storageConnectionString = "<yourconnectionstring>";

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

In den Beispielcodeausschnitten wird gezeigt, wie folgende Aufgaben mit der Azure Blob Storage-Clientbibliothek für .NET in einer App vom Typ „Xamarin.Forms“ ausgeführt werden:These example code snippets show you how to perform the following tasks with the Azure Blob storage client library for .NET in a Xamarin.Forms app:

Erstellen von Variablen auf KlassenebeneCreate class level variables

Im Code weiter unten werden mehrere Variablen auf der Klassenebene deklariert.The code below declares several class level variables. Diese werden im weiteren Verlauf des Beispiels für die Kommunikation mit Azure Blob Storage benötigt.They needed to communicate to Azure Blob storage throughout the rest of this sample.

Sie werden zusätzlich zur Verbindungszeichenfolge für das Speicherkonto verwendet, die im Abschnitt Konfigurieren der Speicherverbindungszeichenfolge festgelegt wurde.These are in addition to the connection string for the storage account set in the Configure your storage connection string section.

Fügen Sie in der Datei MainPage.xaml.cs den folgenden Code als Variablen auf Klassenebene hinzu:Add this code as class level variables inside the MainPage.xaml.cs file:

string storageConnectionString = "{set in the Configure your storage connection string section}";
string fileName = $"{Guid.NewGuid()}-temp.txt";

BlobServiceClient client;
BlobContainerClient containerClient;
BlobClient blobClient;

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 der Datei MainPage.xaml.cs den folgenden Code hinzu:Add this code to MainPage.xaml.cs file:

protected async override void OnAppearing()
{            
    string containerName = $"quickstartblobs{Guid.NewGuid()}";
    
    client = new BlobServiceClient(storageConnectionString);
    containerClient = await client.CreateBlobContainerAsync(containerName);

    resultsLabel.Text = "Container Created\n";

    blobClient = containerClient.GetBlobClient(fileName);

    uploadButton.IsEnabled = true;
}

Hochladen von Blobs in einen ContainerUpload blobs to a container

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

  1. Erstellen eines Speicherstreams (MemoryStream) mit TextCreates a MemoryStream of text.
  2. Hochladen des Texts in ein Blob durch Aufrufen der Funktion UploadAsync der Klasse BlobContainerClient, wobei sowohl der Dateiname als auch der Speicherstream (MemoryStream) mit dem Text übergeben werden.Uploads the text to a Blob by calling the UploadAsync function of the BlobContainerClient class, passing it in both the filename and the MemoryStream of text. 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 der Datei MainPage.xaml.cs den folgenden Code hinzu:Add this code to the MainPage.xaml.cs file:

async void Upload_Clicked(object sender, EventArgs e)
{                                    
    using MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes("Hello World!"));

    await containerClient.UploadBlobAsync(fileName, memoryStream);

    resultsLabel.Text += "Blob Uploaded\n";

    uploadButton.IsEnabled = false;
    listButton.IsEnabled = true;
}

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 der Datei MainPage.xaml.cs den folgenden Code hinzu:Add this code to the MainPage.xaml.cs file:

async void List_Clicked(object sender, EventArgs e)
{            
    await foreach (BlobItem blobItem in containerClient.GetBlobsAsync())
    {
        resultsLabel.Text += blobItem.Name + "\n";                
    }

    listButton.IsEnabled = false;
    downloadButton.IsEnabled = true;
}

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 die Stream-Darstellung des Blobs zunächst in einen Speicherstream (MemoryStream) und dann in einen Streamreader (StreamReader) kopiert, damit der Text angezeigt werden kann.The example code copies the Stream representation of the blob first into a MemoryStream and then into a StreamReader so the text can be displayed.

Fügen Sie der Datei MainPage.xaml.cs den folgenden Code hinzu:Add this code to the MainPage.xaml.cs file:

async void Download_Clicked(object sender, EventArgs e)
{
    BlobDownloadInfo downloadInfo = await blobClient.DownloadAsync();

    using MemoryStream memoryStream = new MemoryStream();
    
    await downloadInfo.Content.CopyToAsync(memoryStream);
    memoryStream.Position = 0;

    using StreamReader streamReader = new StreamReader(memoryStream);

    resultsLabel.Text += "Blob Contents: \n";
    resultsLabel.Text += await streamReader.ReadToEndAsync();
    resultsLabel.Text += "\n";

    downloadButton.IsEnabled = false;
    deleteButton.IsEnabled = true;
}

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.

Die App fordert vor dem Löschen von Blob und Container eine Bestätigung an.The app first prompts to confirm before it deletes the blob and container. Dies ist eine gute Möglichkeit, um zu überprüfen, ob die Ressourcen richtig erstellt wurden, bevor sie gelöscht werden.This is a good chance to verify that the resources were created correctly, before they are deleted.

Fügen Sie der Datei MainPage.xaml.cs den folgenden Code hinzu:Add this code to the MainPage.xaml.cs file:

async void Delete_Clicked(object sender, EventArgs e)
{            
    var deleteContainer = await Application.Current.MainPage.DisplayAlert("Delete Container",
        "You are about to delete the container proceeed?", "OK", "Cancel");

    if (deleteContainer == false)
        return;

    await containerClient.DeleteAsync();

    resultsLabel.Text += "Container Deleted";

    deleteButton.IsEnabled = false;
}

Ausführen des CodesRun the code

Beim Start der App wird der Container zunächst wie dargestellt erstellt.When the app starts, it will first create the container as it appears. Zum Hochladen, Auflisten und Herunterladen der Blobs sowie zum Löschen des Containers muss dann auf die Schaltflächen geklickt werden.Then you will need to click the buttons in order to upload, list, download the blobs, and delete the container.

Drücken Sie unter Windows F5, um die App auszuführen.To run the app on Windows press F5. Drücken Sie auf einem Mac BEFEHLSTASTE+EINGABETASTE, um die App auszuführen.To run the app on Mac press Cmd+Enter.

Von der App wird nach jedem Vorgang etwas auf dem Bildschirm ausgegeben.The app writes to the screen after every operation. Die Ausgabe der App sieht etwa wie im folgenden Beispiel aus:The output of the app is similar to the example below:

Container Created
Blob Uploaded
98d9a472-8e98-4978-ba4f-081d69d2e6f8-temp.txt
Blob Contents:
Hello World!
Container Deleted

Vergewissern Sie sich, dass die Ausgabe des Blobinhalts auf dem Bildschirm dem hochgeladenen Wert entspricht, bevor Sie mit der Bereinigung beginnen.Before you begin the clean-up process, verify the output of the blob's contents on screen match the value that was uploaded.

Bestätigen Sie nach Überprüfung der Werte die Aufforderung, um den Container zu löschen und die Demo abzuschließen.After you've verified the values, confirm the prompt to delete the container and finish the demo.

Nächste SchritteNext steps

In dieser Schnellstartanleitung haben Sie gelernt, wie Sie Blobs unter Verwendung der Azure Blob Storage-Clientbibliothek v12 mit Xamarin hochladen, herunterladen und auflisten.In this quickstart, you learned how to upload, download, and list blobs using Azure Blob storage client library v12 with Xamarin.

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