Freigeben über


Grundlegendes zur Interaktion von Apps mit Blob Storage-Datenressourcen

Während Sie Anwendungen für die Arbeit mit Datenressourcen in Azure Blob Storage erstellen, interagiert Ihr Code in erster Linie mit drei Ressourcentypen: Speicherkonten, Container und Blobs. In diesem Artikel werden diese Ressourcentypen erläutert und gezeigt, wie sie miteinander zusammenhängen. Außerdem wird gezeigt, wie Anwendungscode die Azure Blob Storage-Clientbibliotheken für die Interaktion mit diesen verschiedenen Ressourcen verwendet.

Blob Storage Ressourcentypen

Mit den Azure Blob Storage-Clientbibliotheken können Sie mit drei Ressourcentypen im Speicherdienst interagieren:

Das folgende Diagramm zeigt die Beziehung zwischen diesen Ressourcen:

Diagramm, das die Beziehung zwischen einem Speicherkonto, Containern und Blobs zeigt

Speicherkonten

Ein Speicherkonto stellt einen eindeutigen Namespace in Azure für Ihre Daten bereit. Jedes Objekt, das Sie in Azure Storage speichern, verfügt über eine Adresse, die Ihren eindeutigen Kontonamen enthält. Die Kombination des Kontonamens und des Blob Storage-Endpunkts bildet die Basisadresse für die Objekte in Ihrem Speicherkonto.

Wenn Ihr Speicherkonto beispielsweise als Beispielkonto bezeichnet wird, lautet der Standardendpunkt für Blob Storage:

https://sampleaccount.blob.core.windows.net

Weitere Informationen zu Speicherkontentypen finden Sie in der Übersicht über das Azure-Speicherkonto.

Container

Ein Container organisiert eine Reihe von Blobs, ähnlich wie ein Verzeichnis in einem Dateisystem. Ein Speicherkonto kann eine unbegrenzte Anzahl von Containern enthalten, und ein Container kann eine unbegrenzte Anzahl von Blobs speichern.

Der URI für einen Container ähnelt folgendem:

https://sampleaccount.blob.core.windows.net/sample-container

Weitere Informationen zum Benennen von Containern finden Sie unter "Benennen und Verweisen auf Container", "Blobs" und "Metadaten".

BLOBs

Azure Storage unterstützt drei Arten von Blobs:

  • Blockieren von Blobs Speichern von Text- und Binärdaten. Block-Blobs bestehen aus Datenblöcken, die einzeln verwaltet werden können. Block-Blobs können bis zu 190,7 TiB speichern.
  • Anfügeblobs bestehen wie Blockblobs aus Blöcken, sind aber für Anfügevorgänge optimiert. Anfügeblobs sind beispielsweise ideal für Szenarien, bei denen es um das Protokollieren von Daten virtueller Computer geht.
  • Seitenblobs speichern Dateien für den zufälligen Zugriff bis zu 8 TiB in der Größe. Weitere Informationen zu Seitenblobs finden Sie unter Übersicht über Azure-Seitenblobs

Weitere Informationen zu den verschiedenen Blobtypen finden Sie unter Understanding Block Blobs, Append Blobs, and Page Blobs (Grundlegendes zu Block-, Anfüge- und Seitenblobs).

Der URI für ein Blob ähnelt folgendem:

https://sampleaccount.blob.core.windows.net/sample-container/sample-blob

Weitere Informationen zum Benennen von Blobs finden Sie unter "Benennen und Verweisen auf Container", "Blobs" und "Metadaten".

Arbeiten mit Datenressourcen mithilfe des Azure SDK

Die Azure-SDKs enthalten Bibliotheken, die auf der Azure REST-API aufbauen, sodass Sie über vertraute Programmiersprachenparadigma mit REST-API-Vorgängen interagieren können. Die SDKs wurden entwickelt, um Interaktionen zwischen Ihrer Anwendung und Azure-Ressourcen einfacher zu machen.

In seltenen Fällen können Anwendungen, die auf die neueste Beta- oder allgemein verfügbare Version des SDK aktualisiert wurden, eine InvalidHeaderValue Fehlermeldung erhalten. Dieses Problem kann beim Verwenden einer der Storage-Bibliotheken auftreten. Die Fehlermeldung sieht ähnlich wie das folgende Beispiel aus:

HTTP/1.1 400 The value for one of the HTTP headers is not in the correct format.
Content-Length: 328
Content-Type: application/xml
Server: Microsoft-HTTPAPI/2.0
x-ms-request-id: <REMOVED>
Date: Fri, 19 May 2023 17:10:33 GMT
 
<?xml version="1.0" encoding="utf-8"?>
<Error>
<Code>InvalidHeaderValue</Code>
<Message>
The value for one of the HTTP headers is not in the correct format.
RequestId:<REMOVED>
Time:2023-05-19T17:10:34.2972651Z
</Message>
<HeaderName>x-ms-version</HeaderName><HeaderValue>yyyy-mm-dd</HeaderValue>
</Error>

Wenn Sie auf die neueste Beta- oder allgemein verfügbare Version des SDK aktualisiert haben und dieser Fehler auftritt, wird empfohlen, auf die vorherige allgemein verfügbare Version des SDK zurückzustufen, um zu sehen, ob das Problem behoben wird.

Sie können SDK-spezifische Details an den folgenden Orten einsehen.

Falls das Problem weiterhin besteht oder die Empfehlung nicht umsetzbar ist, öffnen Sie ein Support-Ticket, um weitere Optionen zu erkunden.

In den Azure Blob Storage-Clientbibliotheken wird jeder Ressourcentyp durch eine oder mehrere zugeordnete Klassen dargestellt. Diese Klassen bieten Vorgänge für die Arbeit mit einer Azure Storage-Ressource.

In der folgenden Tabelle werden die grundlegenden Klassen zusammen mit einer kurzen Beschreibung aufgelistet:

Klasse BESCHREIBUNG
BlobServiceClient Stellt das Speicherkonto dar und stellt Vorgänge zum Abrufen und Konfigurieren von Kontoeigenschaften und zum Arbeiten mit BLOB-Containern im Speicherkonto bereit.
BlobContainerClient Stellt einen bestimmten Blobcontainer dar und bietet Vorgänge an, um mit dem Container und den Blobs darin zu arbeiten.
BlobClient Stellt ein bestimmtes Blob dar und bietet allgemeine Vorgänge zum Arbeiten mit dem Blob, einschließlich Vorgängen zum Hochladen, Herunterladen, Löschen und Erstellen von Momentaufnahmen.
AppendBlobClient Stellt ein Anfüge-Blob dar und stellt Vorgänge bereit, die spezifisch für das Anfügen von Blobs sind, z. B. das Anfügen von Protokolldaten.
BlockBlobClient Stellt ein Block-Blob dar und stellt Vorgänge bereit, die spezifisch für Block-Blobs sind, z. B. Staging und anschließendes Commit von Datenblöcken.

Die folgenden Pakete enthalten die Klassen, die für die Arbeit mit Blob Storage-Datenressourcen verwendet werden:

  • Azure.Storage.Blobs: Enthält die primären Klassen (Clientobjekte), die Sie für den Betrieb mit dem Dienst, Containern und Blobs verwenden können.
  • Azure.Storage.Blobs.Specialized: Enthält Klassen, die Sie zum Ausführen spezifischer Vorgänge für einen Blobtyp, z. B. Blockblobs, verwenden können.
  • Azure.Storage.Blobs.Models: Alle anderen Hilfsklassen, Strukturen und Enumerationstypen.

Nächste Schritte

Das Arbeiten mit Azure-Ressourcen mithilfe des SDK beginnt mit dem Erstellen einer Clientinstanz. Weitere Informationen zur Erstellung und Verwaltung von Clientobjekten finden Sie unter Erstellen und Verwalten von Clientobjekten, die mit Datenressourcen interagieren.