Freigeben über


Get Block List

Der Get Block List-Vorgang ruft die Liste der Blöcke ab, die als Teil eines Block-BLOB hochgeladen wurden.

Für ein Blob werden zwei Blocklisten verwaltet:

  • Gesperrte Blockliste: Die Liste der Blöcke, die mithilfe von Put Block List erfolgreich für ein angegebenes Blob committet wurden.

  • Nicht festgelegte Blockliste: Die Liste der Blöcke, die mithilfe von Put Block für ein Blob hochgeladen, aber noch nicht committet wurden. Diese Blöcke werden in Azure in Zuordnung zu einem Blob gespeichert, sind aber noch nicht Teil des Blobs.

Sie können aufrufen Get Block List , um die zugesagte Blockliste, die nicht festgeschriebene Blockliste oder beide Listen zurückzugeben. Sie können diesen Vorgang auch aufrufen, um die zugesagte Blockliste für eine Momentaufnahme abzurufen.

Anforderung

Die Get Block List-Anforderung kann wie folgt erstellt werden. Es wird empfohlen, HTTPS zu verwenden. Ersetzen Sie myaccount durch den Namen Ihres Speicherkontos:

GET-Methodenanforderungs-URI HTTP-Version
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist

https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist&snapshot=<DateTime>

https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist&versionid=<DateTime>
HTTP/1.1

Emulierte Speicherdienstanforderung

Wenn Sie eine Anforderung für den emulierten Speicherdienst ausführen, geben Sie den Emulatorhostnamen und den Port des Blob-Diensts mit 127.0.0.1:10000 an, gefolgt vom Namen des emulierten Speicherkontos:

GET-Methodenanforderungs-URI HTTP-Version
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=blocklist HTTP/1.1

Weitere Informationen finden Sie unter Verwenden des Azurite-Emulators für lokale Azure Storage-Entwicklung.

URI-Parameter

Sie können im Anforderungs-URI die folgenden zusätzlichen Parameter angeben:

URI-Parameter Beschreibung
snapshot Optional. Der Momentaufnahmeparameter ist ein nicht transparenter DateTime-Wert, der ggf. die abzurufende BLOB-Liste angibt. Weitere Informationen zum Arbeiten mit Blobmomentaufnahmen finden Sie unter Create einer Momentaufnahme eines Blobs.
versionid Optional für Versionen 2019-12-12 und höher. Der versionid Parameter ist ein undurchsichtiger DateTime Wert, der, wenn vorhanden, die Version des abzurufenden Blobs angibt.
blocklisttype Gibt an, ob die Liste der Blöcke mit ausgeführtem Commit, die Liste der Blöcke ohne ausgeführten Commit oder beide Listen zusammen zurückgegeben werden. Gültige Werte sind committed, uncommitted oder all. Wenn Sie diesen Parameter nicht angeben, gibt Get Block List die Liste der Blöcke mit ausgeführtem Commit zurück.
timeout Optional. Der timeout-Parameter wird in Sekunden angegeben. Weitere Informationen finden Sie unter Festlegen von Timeouts für Blob Storage-Vorgänge.

Anforderungsheader

In der folgenden Tabelle werden erforderliche und optionale Anforderungsheader beschrieben.

Anforderungsheader BESCHREIBUNG
Authorization Erforderlich. Gibt das Autorisierungsschema, den Kontonamen und die Signatur an. Weitere Informationen finden Sie unter Autorisieren von Anforderungen an Azure Storage.
Date oder x-ms-date Erforderlich. Gibt die koordinierte Weltzeit (Coordinated Universal Time, UTC) für die Anforderung an. Weitere Informationen finden Sie unter Autorisieren von Anforderungen an Azure Storage.
x-ms-version Erforderlich für alle autorisierten Anforderungen, optional für anonyme Anforderungen. Gibt die Version des für die Anforderung zu verwendenden Vorgangs an. Weitere Informationen finden Sie unter Versionsverwaltung für die Azure-Speicherdienste.
x-ms-lease-id:<ID> Optional. Bei Angabe dieses Headers wird der Vorgang nur ausgeführt, wenn die beiden folgenden Bedingungen erfüllt sind:

– Die Lease des Blobs ist derzeit aktiv.
– Die in der Anforderung angegebene Lease-ID entspricht der des Blobs.

Wenn dieser Header angegeben ist und beide Bedingung nicht erfüllt ist, schlägt die Anforderung fehl, und der Vorgang schlägt mit status Code 412 (Vorbedingung fehlgeschlagen) fehl.
x-ms-client-request-id Optional. Stellt einen vom Client generierten, undurchsichtigen Wert mit einem Zeichenlimit von 1 Kibibyte (KiB) bereit, der beim Konfigurieren der Protokollierung in den Protokollen aufgezeichnet wird. Es wird dringend empfohlen, diesen Header zu verwenden, um clientseitige Aktivitäten mit Anforderungen zu korrelieren, die der Server empfängt. Weitere Informationen finden Sie unter Überwachen Azure Blob Storage.

Dieser Vorgang unterstützt zudem die Verwendung von bedingten Headern zum Ausführen des Vorgangs, wobei eine bestimmte Bedingung erfüllt sein muss. Weitere Informationen finden Sie unter Angeben von bedingten Headern für Blob Storage-Vorgänge.

Anforderungstext

Keine.

Beispiel für eine Anforderung

Der folgende Beispielanforderungs-URI gibt die committete Blockliste für ein Blob mit dem Namen MOV1.avi zurück:

GET http://myaccount.blob.core.windows.net/movies/MOV1.avi?comp=blocklist&blocklisttype=committed HTTP/1.1

Der folgende Beispielanforderungs-URI gibt sowohl die Commit- als auch die nicht festgeschriebene Blockliste zurück:

GET http://myaccount.blob.core.windows.net/movies/MOV1.avi?comp=blocklist&blocklisttype=all HTTP/1.1

Der folgende Beispielanforderungs-URI gibt die committete Blockliste für eine Momentaufnahme zurück. Eine Momentaufnahme besteht nur aus committeten Blöcken, sodass ihr keine nicht gebundenen Blöcke zugeordnet sind.

GET http://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist&snapshot=2009-09-30T20%3a11%3a15.2735974Z

Antwort

Die Antwort enthält einen HTTP-status-Code, eine Reihe von Antwortheadern und einen Antworttext, der die Liste der Blöcke enthält.

Statuscode

Bei einem erfolgreichen Vorgang wird der Statuscode 200 (OK) zurückgegeben.

Informationen zu status Codes finden Sie unter Status- und Fehlercodes.

Antwortheader

Die Antwort für diesen Vorgang umfasst die folgenden Header. Die Antwort kann auch zusätzliche HTTP-Standardheader enthalten. Alle Standardheader entsprechen der HTTP/1.1-Protokollspezifikation.

Antwortheader BESCHREIBUNG
Last-Modified Das Datum/die Uhrzeit der letzten Änderung des Blobs. Das Datumsformat entspricht RFC 1123. Weitere Informationen finden Sie unter Darstellen von Datums-/Uhrzeitwerten in Headern. Wird nur zurückgegeben, wenn das Blob über committete Blöcke verfügt.

Durch jeden Vorgang, der das BLOB ändert, einschließlich von Updates der Metadaten oder Eigenschaften des BLOB, wird der Zeitpunkt der letzten Änderung des BLOB aktualisiert.
ETag Das ETag für das BLOB. Wird nur zurückgegeben, wenn das Blob über committete Blöcke verfügt.
Content-Type Der MIME-Inhaltstyp des BLOB. Standardwert: application/xml.
x-ms-blob-content-length Die Größe des Blobs in Byte.
x-ms-request-id Dieser Header identifiziert eindeutig die Anforderung, die gestellt wurde, und kann zur Problembehandlung für die Anforderung verwendet werden. Weitere Informationen finden Sie unter Problembehandlung bei API-Vorgängen.
x-ms-version Gibt die Dienstversion an, die zum Ausführen der Anforderung verwendet wurde. Dieser Header wird für Anforderungen zurückgegeben, die für Version 2009-09-19 und höher erfolgen.

Dieser Header wird auch für anonyme Anforderungen ohne angegebene Version zurückgegeben, wenn der Container mit Blob Storage-Version 2009-09-19 für den öffentlichen Zugriff markiert wurde. Hinweis: Nur die commitierte Blockliste kann über eine anonyme Anforderung zurückgegeben werden.
Date Ein UTC-Datums-/Uhrzeitwert, der vom Dienst generiert wird, der die Uhrzeit angibt, zu der die Antwort initiiert wurde.
x-ms-client-request-id Kann verwendet werden, um Anforderungen und entsprechende Antworten zu behandeln. Der Wert dieses Headers ist gleich dem Wert des x-ms-client-request-id Headers, wenn er in der Anforderung vorhanden ist und der Wert nicht mehr als 1.024 sichtbare ASCII-Zeichen enthält. Wenn der x-ms-client-request-id Header in der Anforderung nicht vorhanden ist, ist er in der Antwort nicht vorhanden.

Dieser Vorgang unterstützt auch die Verwendung bedingter Header, um die Blockliste nur abzurufen, wenn eine angegebene Bedingung erfüllt ist. Weitere Informationen finden Sie unter Angeben von bedingten Headern für Blob Storage-Vorgänge.

Antworttext

Das Format des Antworttexts für eine Anforderung, die nur Blöcke mit ausgeführtem Commit zurückgibt, lautet wie folgt:

<?xml version="1.0" encoding="utf-8"?>
<BlockList>
  <CommittedBlocks>
    <Block>
      <Name>base64-encoded-block-id</Name>
      <Size>size-in-bytes</Size>
    </Block>
  <CommittedBlocks>
</BlockList>

Das Format des Antworttexts für eine Anforderung, die sowohl Blöcke mit ausgeführtem Commit als auch Blöcke ohne ausgeführten Commit zurückgibt, lautet wie folgt:


<?xml version="1.0" encoding="utf-8"?>
<BlockList>
  <CommittedBlocks>
     <Block>
        <Name>base64-encoded-block-id</Name>
        <Size>size-in-bytes</Size>
     </Block>
  </CommittedBlocks>
  <UncommittedBlocks>
    <Block>
      <Name>base64-encoded-block-id</Name>
      <Size>size-in-bytes</Size>
    </Block>
  </UncommittedBlocks>
 </BlockList>

Beispiel für eine Antwort

Im folgenden Beispiel wurde der blocklisttype-Parameter auf committed festgelegt, sodass nur die Blöcke mit ausgeführtem Commit des BLOB in der Antwort zurückgegeben werden.

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/xml
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 42da571d-34f4-4d3e-b53e-59a66cb36f23
Date: Sun, 25 Sep 2011 00:33:19 GMT

<?xml version="1.0" encoding="utf-8"?>
<BlockList>
  <CommittedBlocks>
    <Block>
      <Name>BlockId001</Name>
      <Size>4194304</Size>
    </Block>
    <Block>
      <Name>BlockId002</Name>
      <Size>4194304</Size>
    </Block>
  </CommittedBlocks>
</BlockList>

In diesem Beispiel wurde der blocklisttype-Parameter auf all festgelegt. In der Antwort werden die Blöcke mit ausgeführtem Commit und die Blöcke ohne ausgeführten Commit des BLOB zurückgegeben.

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/xml
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 42da571d-34f4-4d3e-b53e-59a66cb36f23
Date: Sun, 25 Sep 2011 00:35:56 GMT

<?xml version="1.0" encoding="utf-8"?>
<BlockList>
  <CommittedBlocks>
    <Block>
      <Name>BlockId001</Name>
      <Size>4194304</Size>
    </Block>
    <Block>
      <Name>BlockId002</Name>
      <Size>4194304</Size>
    </Block>
  </CommittedBlocks>
  <UncommittedBlocks>
    <Block>
      <Name>BlockId003</Name>
      <Size>4194304</Size>
    </Block>
    <Block>
      <Name>BlockId004</Name>
      <Size>1024000</Size>
    </Block>
  </UncommittedBlocks>
</BlockList>

In diesem nächsten Beispiel wurde der blocklisttype Parameter auf allfestgelegt, aber das Blob wurde noch nicht committet, sodass das CommittedBlocks Element leer ist.

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/xml
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 42da571d-34f4-4d3e-b53e-59a66cb36f23
Date: Wed, 14 Sep 2011 00:40:22 GMT

<?xml version="1.0" encoding="utf-8"?>
<BlockList>
  <CommittedBlocks />
  <UncommittedBlocks>
    <Block>
      <Name>BlockId001</Name>
      <Size>1024</Size>
    </Block>
    <Block>
      <Name>BlockId002</Name>
      <Size>1024</Size>
    </Block>
    <Block>
      <Name>BlockId003</Name>
      <Size>1024</Size>
    </Block>
    <Block>
      <Name>BlockId004</Name>
      <Size>1024</Size>
    </Block>
  </UncommittedBlocks>
</BlockList>

Authorization

Beim Aufrufen eines Datenzugriffsvorgangs in Azure Storage ist eine Autorisierung erforderlich. Sie können den Get Block List Vorgang wie unten beschrieben autorisieren.

Wichtig

Microsoft empfiehlt die Verwendung Microsoft Entra ID mit verwalteten Identitäten, um Anforderungen an Azure Storage zu autorisieren. Microsoft Entra ID bietet im Vergleich zur Autorisierung mit gemeinsam genutzten Schlüsseln überlegene Sicherheit und Benutzerfreundlichkeit.

Azure Storage unterstützt die Verwendung von Microsoft Entra ID zum Autorisieren von Anforderungen an Blobdaten. Mit Microsoft Entra ID können Sie die rollenbasierte Zugriffssteuerung (Azure RBAC) von Azure verwenden, um einem Sicherheitsprinzipal Berechtigungen zu erteilen. Der Sicherheitsprinzipal kann ein Benutzer, eine Gruppe, ein Anwendungsdienstprinzipal oder eine verwaltete Azure-Identität sein. Der Sicherheitsprinzipal wird von Microsoft Entra ID authentifiziert, um ein OAuth 2.0-Token zurückzugeben. Das Token kann anschließend zum Autorisieren einer Anforderung an den Blob-Dienst verwendet werden.

Weitere Informationen zur Autorisierung mit Microsoft Entra ID finden Sie unter Autorisieren des Zugriffs auf Blobs mit Microsoft Entra ID.

Berechtigungen

Nachfolgend sind die RBAC-Aktion aufgeführt, die für einen Microsoft Entra Benutzer, Gruppe, verwaltete Identität oder Dienstprinzipal erforderlich ist, um den Get Block List Vorgang aufzurufen, und die integrierte Azure RBAC-Rolle mit den geringsten Berechtigungen, die diese Aktion enthält:

Weitere Informationen zum Zuweisen von Rollen mithilfe von Azure RBAC finden Sie unter Zuweisen einer Azure-Rolle für den Zugriff auf Blobdaten.

Hinweise

Rufen Sie Get Block List auf, um die Liste der Blöcke zurückzugeben, die für ein Blockblob festgelegt wurden, die Liste der Blöcke, die noch nicht committet wurden, oder beide Listen. Verwenden Sie den blocklisttype-Parameter, um anzugeben, welche Liste von Blöcken zurückgegeben werden soll. Die Liste der zugesagten Blöcke wird in der gleichen Reihenfolge zurückgegeben, in der sie durch den Vorgang Blockliste platzieren zugesagt wurden.

Sie können die nicht festgelegte Blockliste verwenden, um zu bestimmen, welche Blöcke im Blob fehlen, wenn Aufrufe von Put Block oder Put Block List fehlgeschlagen sind. Die Liste der nicht festgeschriebenen Blöcke wird in alphabetischer Reihenfolge zurückgegeben. Wenn eine Block-ID mehrmals hochgeladen wurde, wird nur der zuletzt hochgeladene Block in der Liste angezeigt.

Hinweis

Wenn ein Blob noch nicht committet wurde, gibt der Aufruf Get Block List mit blocklisttype=all die nicht gebundenen Blöcke zurück, und das CommittedBlocks Element ist leer.

Get Block List unterstützt keine Parallelität, wenn die Liste der nicht festgeschriebenen Blöcke gelesen wird. Aufrufe an Get Block List , wobei blocklisttype=uncommitted oder blocklisttype=all eine niedrigere maximale Anforderungsrate als andere Lesevorgänge aufweisen. Ausführliche Informationen zum Zieldurchsatz für Lesevorgänge finden Sie unter Skalierbarkeits- und Leistungsziele für Azure Storage.

Ab Version 2019-12 kann ein Blockblob Blöcke mit einer Größe von bis zu 4.000 Mb (MiB) enthalten. Um Anwendungen zu schützen, die eine signierte 32-Bit-Ganzzahl zur Darstellung der Blockgröße verwenden, führt das Aufrufen Get Block List eines Blockblobs, das einen Block größer als 100 MiB enthält, mit einer REST-Version vor 2019-12 zu status Code 409 (Konflikt).

Get Block List ist nur für Block-BLOBs anwendbar. Der Aufruf von Get Block List für ein Seitenblob führt zum Statuscode 400 (Ungültige Anforderung).

Get Block List bei einem archivierten Blockblob tritt ein Fehler auf.

Abrechnung

Preisanforderungen können von Clients stammen, die Blob Storage-APIs verwenden, entweder direkt über die Blob Storage-REST-API oder aus einer Azure Storage-Clientbibliothek. Für diese Anforderungen fallen Gebühren pro Transaktion an. Die Art der Transaktion wirkt sich auf die Belastung des Kontos aus. Beispielsweise werden Lesetransaktionen in eine andere Abrechnungskategorie als das Schreiben von Transaktionen angewendet. Die folgende Tabelle zeigt die Abrechnungskategorie für Get Block List Anforderungen basierend auf dem Speicherkontotyp:

Vorgang Speicherkontotyp Abrechnungskategorie
Get Block List Premium, Blockblob
Standard „Allgemein v2“
Weitere Vorgänge
Get Block List Standard „Allgemein v1“ Dient zum Lesen von Vorgängen.

Weitere Informationen zu Preisen für die angegebene Abrechnungskategorie finden Sie unter Azure Blob Storage Preise.

Weitere Informationen

Autorisieren von Anforderungen an AzureStorage-Status und FehlercodesBlob Storage-FehlercodesFestlegen von Timeouts für Blob Storage-Vorgänge