VERTRIEB: 1-800-867-1380

List Blobs

Letzte Aktualisierung: Februar 2015

Mit dem List Blobs-Vorgang wird die Liste der BLOBs im angegebenen Container aufgezählt.

Die List Blobs-Anforderung kann wie folgt erstellt werden. HTTPS wird empfohlen. Ersetzen Sie myaccount durch den Namen Ihres Speicherkontos:

 

Methode Anforderungs-URI HTTP-Version

GET

https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list

HTTP/1.1

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:

 

Methode Anforderungs-URI HTTP-Version

GET

http://127.0.0.1:10000/devstoreaccount1/mycontainer?restype=container&comp=list

HTTP/1.1

Weitere Informationen finden Sie unter Einsatz des Azure-Speicheremulators für Entwicklung und Tests.

Im URI können die folgenden zusätzlichen Parameter angegeben werden.

 

Parameter Beschreibung

prefix

Optional. Filtert die Ergebnisse, um nur BLOBs zurückgegeben, deren Namen mit dem angegebenen Präfix beginnen.

delimiter

Optional. Wenn die Anforderung diesen Parameter enthält, gibt der Vorgang ein Element im BlobPrefix Antworttext zurück, das als Platzhalter für alle BLOBs verwendet wird, deren Namen mit derselben Teilzeichenfolge bis zum Trennzeichen beginnt. Das Trennzeichen kann ein einzelnes Zeichen oder eine Zeichenfolge sein.

marker

Optional. Ein Zeichenfolgenwert, der den Teil der Liste angibt, der mit dem nächsten Auflistungsvorgang zurückgegeben wird. Der Vorgang gibt im Antworttext einen Markerwert zurück, wenn die zurückgegebene Liste nicht vollständig war. Der Markerwert kann in einem folgenden Aufruf verwendet werden, um den nächsten Satz von Listenelementen anzufordern.

Der Markerwert ist für den Client nicht transparent.

maxresults

Optional. Gibt die maximale Anzahl zurückzugebender BLOBs an, einschließlich aller BlobPrefix-Elemente. Wenn in der Anforderung nicht maxresults angegeben ist oder ein größerer Wert als 5.000 angegeben ist, gibt der Server bis zu 5.000 Elemente zurück.

Wenn maxresults auf einen Wert kleiner oder gleich 0 festgelegt ist, wird Fehlerantwortcode 400 ausgegeben (ungültige Anforderung).

include={snapshots,metadata,uncommittedblobs,copy}

Optional. Gibt ein oder mehrere Datasets an, die in der Antwort eingeschlossen werden sollen:

  • snapshots: Gibt an, dass in die Enumeration Momentaufnahmen eingeschlossen werden sollen. Momentaufnahmen werden in der Antwort von der ältesten zur neuesten aufgeführt.

  • metadata: Gibt an, dass in der Antwort BLOB-Metadaten zurückgegeben werden.

  • uncommittedblobs: Gibt an, dass BLOBs, für die Blöcke hochgeladen wurden, für die aber kein Commit Put Block List (REST-API) ausgeführt wurde, in die Antwort eingeschlossen werden sollen.

  • copy: Version 2012-02-12 und höher. Gibt an, dass Metadaten, die mit dem aktuellen oder vorherigen Copy Blob-Vorgang verknüpft sind, in die Antwort eingeschlossen werden sollen.

Um mehr als eine dieser Optionen im URI anzugeben, müssen Sie die Optionen jeweils mit einem URL-codierten Komma ("%82") trennen.

timeout

Optional. Der timeout-Parameter wird in Sekunden angegeben. Weitere Informationen finden Sie unter Festlegen von Timeouts für Blob-Dienstvorgänge.

In der folgenden Tabelle werden erforderliche und optionale Anforderungsheader beschrieben.

 

Anforderungsheader Beschreibung

Authorization

Erforderlich. Gibt das Authentifizierungsschema, den Kontonamen und die Signatur an. Weitere Informationen finden Sie unter Authentifizierung für die Azure-Speicherdienste.

Date - oder - x-ms-date

Erforderlich. Gibt die Uhrzeit der Anforderung in koordinierter Weltzeit (UTC) an. Weitere Informationen finden Sie unter Authentifizierung für die Azure-Speicherdienste.

x-ms-version

Für alle authentifizierten Anforderungen erforderlich, für anonyme Anforderungen optional. Gibt die Version des für die Anforderung zu verwendenden Vorgangs an. Weitere Informationen finden Sie unter Versionsverwaltung für den Blob-Dienst, den Warteschlangendienst und den Tabellendienst in Windows Azure.

x-ms-client-request-id

Optional. Stellt einen vom Client generierten, nicht transparenten Wert mit einer Zeichenbeschränkung von 1 KB bereit, der bei Aktivierung der Speicheranalyse-Protokollierung in den Analyseprotokollen erfasst wird. Die Verwendung dieses Headers wird dringend empfohlen, um clientseitige Aktivitäten mit den vom Server empfangenen Anforderungen zu korrelieren. Weitere Informationen finden Sie unter Informationen zur Protokollierung durch die Speicheranalyse und Azure-Speicherprotokollierung: Verwenden von Protokollen zur Nachverfolgung von Speicheranforderungen.

Eine Beispielanforderung finden Sie unter Aufzählen von BLOB-Ressourcen.

Die Antwort enthält den HTTP-Statuscode, einen Satz von Antwortheadern und einen Antworttext im XML-Format.

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

Weitere Informationen zu Statuscodes finden Sie unter Status- und Fehlercodes.

Die Antwort für diesen Vorgang umfasst die folgenden Header. Die Antwort kann außerdem weitere HTTP-Standardheader enthalten. Alle Standardheader entsprechen der HTTP/1.1-Protokollspezifikation.

 

Antwortheader Beschreibung

Content-Type

Gibt das Format an, in dem die Ergebnisse zurückgegeben werden. Derzeit lautet dieser Wert application/xml.

x-ms-request-id

Dieser Header identifiziert die erfolgte Anforderung eindeutig und kann für die Problembehandlung der Anforderung verwendet werden. Weitere Informationen finden Sie unter Problembehandlung für API-Vorgänge.

x-ms-version

Gibt die Version des Blob-Diensts an, der zum Ausführen der Abfrage verwendet wird. Dieser Header wird für Anforderungen zurückgegeben, die mit Version 2009-09-19 und neuer vorgenommen wurden.

Dieser Header wird auch für die anonymen Anforderungen ohne Versionsangabe zurückgegeben, wenn der Container für öffentlichen Zugriff mit Version 2009-09-19 des Blob-Diensts markiert wurde.

Date

Ein vom Dienst generierter Datums-/Uhrzeitwert in UTC, der angibt, wann die Antwort initiiert wurde.

Die XML-Antwort weist das folgende Format auf:

Beachten Sie, dass die Elemente Prefix, Marker, MaxResults und Delimiter nur vorhanden sind, wenn sie im Anforderungs-URI angegeben wurden. Das NextMarker-Element weist nur einen Wert auf, wenn die Listenergebnisse nicht vollständig sind.

Momentaufnahmen, BLOB-Metadaten und BLOBs ohne ausgeführten Commit sind in der Antwort nur enthalten, wenn sie mit dem include-Parameter im Anforderungs-URI angegeben wurden.

In Version 2009-09-19 und neuer werden die Eigenschaften des BLOB in einem Properties-Element gekapselt.

In Version 2013-08-15 und höheren Versionen enthält das EnumerationResults-Element ein ServiceEndpoint-Attribut, das den BLOB-Endpunkt angibt, und ein ContainerName-Feld zur Angabe des Containernamens. In früheren Versionen wurden diese beiden Attribute im ContainerName-Feld kombiniert. Darüber hinaus wurde in Version 2013-08-15 und höheren Versionen das Url-Element unter Blob entfernt.

<?xml version="1.0" encoding="utf-8"?>
<EnumerationResults ServiceEndpoint="http://myaccount.blob.core.windows.net/"  ContainerName="mycontainer">
  <Prefix>string-value</Prefix>
  <Marker>string-value</Marker>
  <MaxResults>int-value</MaxResults>
  <Delimiter>string-value</Delimiter>
  <Blobs>
    <Blob>
      <Name>blob-name</name>
      <Snapshot>date-time-value</Snapshot>
      <Properties>
        <Last-Modified>date-time-value</Last-Modified>
        <Etag>etag</Etag>
        <Content-Length>size-in-bytes</Content-Length>
        <Content-Type>blob-content-type</Content-Type>
        <Content-Encoding />
        <Content-Language />
        <Content-MD5 />
        <Cache-Control />
        <x-ms-blob-sequence-number>sequence-number</x-ms-blob-sequence-number>
        <BlobType>BlockBlob|PageBlob</BlobType>
        <LeaseStatus>locked|unlocked</LeaseStatus>
        <LeaseState>available | leased | expired | breaking | broken</LeaseState>
        <LeaseDuration>infinite | fixed</LeaseDuration>
        <CopyId>id</CopyId>
        <CopyStatus>pending | success | aborted | failed </CopyStatus>
        <CopySource>source url</CopySource>
        <CopyProgress>bytes copied/bytes total</CopyProgress>
        <CopyCompletionTime>datetime</CopyCompletionTime>
        <CopyStatusDescription>error string</CopyStatusDescription>
      </Properties>
      <Metadata>   
        <Name>value</Name>
      </Metadata>
    </Blob>
    <BlobPrefix>
      <Name>blob-prefix</Name>
    </BlobPrefix>
  </Blobs>
  <NextMarker />
</EnumerationResults>

LeaseState und LeaseDuration werden nur in Version 2012-02-12 und höher angegeben.

CopyId, CopyStatus, CopySource, CopyProgress, CopyCompletionTime und CopyStatusDescription werden in Version 2012-02-12 und höher nur angegeben, wenn dieser Vorgang den include={copy}-Parameter enthält. Diese Elemente sind nicht vorhanden, wenn das BLOB nie das Ziel in einem Copy Blob-Vorgang war oder wenn dieses BLOB nach einem abgeschlossenen Copy Blob-Vorgang mit Set Blob Properties, Put Blob oder Put Block List geändert wurde. Diese Elemente werden außerdem nicht für BLOBs angegeben, die mit Copy BLOB (REST-API) vor Version 2012-02-12 erstellt wurden.

noteHinweis
Ab Version 2009-09-19 gibt List Blobs im Antworttext die folgenden umbenannten Elemente zurück:

  • Last-Modified (bisher LastModified)

  • Content-Length (bisher Size)

  • Content-Type (bisher ContentType)

  • Content-Encoding (bisher ContentEncoding)

  • Content-Language (bisher ContentLanguage)

Das Content-MD5-Element wird für die BLOBs angegeben, die mit Version 2009-09-19 und höher erstellt wurden. In Version 2012-02-12 und neuer berechnet der Blob-Dienst den Content-MD5-Wert, wenn Sie ein BLOB mit Put Blob (REST-API) hochladen, nicht jedoch, wenn Sie das BLOB mit Put Block List (REST-API) erstellen. Sie können den Content-MD5-Wert explizit beim Erstellen des BLOB oder durch Aufruf der Vorgänge Festlegen von BLOB-Eigenschaften (REST-API) oder Put Block List (REST-API) festlegen.

Eine Beispielantwort finden Sie unter Aufzählen von BLOB-Ressourcen.

Wenn die Zugriffssteuerungsliste des Containers anonymen Zugriff auf den Container zulässt, kann dieser Vorgang von jedem Client aufgerufen werden. Andernfalls kann dieser Vorgang vom Kontobesitzer und von jedem Benutzer mit SAS (Shared Access Signature) aufgerufen werden, der über die Berechtigung zum Aufführen von BLOBs in einem Container verfügt.

BLOB-Eigenschaften in der Antwort

Wenn Sie angefordert haben, dass BLOBs ohne ausgeführten Commit in der Aufzählung berücksichtigt werden sollen, werden einige Eigenschaften erst festgelegt, wenn für das BLOB ein Commit ausgeführt wurde. Daher werden einige Eigenschaften nicht in der Antwort zurückgegeben.

Das x-ms-blob-sequence-number-Element wird nur für Seitenblobs zurückgegeben.

Für Seitenblobs entspricht der im Content-Length-Element zurückgegebene Wert dem Wert des x-ms-blob-content-length-Headers für das BLOB.

Das Content-MD5-Element wird im Antworttext nur angegeben, wenn Sie auf das BLOB mit der Version 2009-09-19 oder höher festgelegt wurde. Sie können die Content-MD5-Eigenschaft festlegen, wenn das BLOB erstellt wird, oder indem Sie Festlegen von BLOB-Eigenschaften (REST-API) aufrufen. In Version 2012-02-12 und höher legt Put Blob den MD5-Wert eines Block-BLOB fest, auch wenn die Put Blob-Anforderung keinen MD5-Header enthält.

Metadaten in der Antwort

Das Metadata-Element ist nur vorhanden, wenn im URI der include=metadata-Parameter angegeben wurde. Im Metadata-Element wird der Wert jedes Name-Wert-Paars in einem Element aufgelistet, das dem Namen des Paars entspricht.

Beachten Sie, dass die mit diesem Parameter angegebenen Metadaten gemäß den Benennungsbeschränkungen gespeichert werden müssen, die für Version 2009-09-19 des Blob-Diensts gelten. Ab dieser Version müssen alle Metadatennamen den Benennungskonventionen für C#-Bezeichner entsprechen.

Wenn ein Name-Wert-Paar von Metadaten gegen die Benennungsbeschränkungen von Version 2009-09-19 verstößt, gibt der Antworttext den problematischen Namen in einem x-ms-invalid-name-Element an, wie im folgenden XML-Fragment gezeigt:


      …
      <Metadata>
        <MyMetadata1>first value</MyMetadata1>
        <MyMetadata2>second value</MyMetadata2>
        <x-ms-invalid-name>invalid-metadata-name</x-ms-invalid-name>
      </Metadata>
      …

Momentaufnahmen in der Antwort

Momentaufnahmen werden in der Antwort nur aufgeführt, wenn im URI der Parameter include=snapshots angegeben wurde. Die in der Antwort aufgeführten Momentaufnahmen enthalten nicht das LeaseStatus-Element, da Momentaufnahmen keine aktiven Leases aufweisen können.

Wenn Sie List Blobs mit einem Trennzeichen aufrufen, dürfen Sie nicht auch Momentaufnahmen in der Enumeration einschließen. Anforderungen, die beides enthalten, geben einen InvalidQueryParameter-Fehler zurück (HTTP-Statuscode 400 – ungültige Anforderung).

BLOBs ohne ausgeführten Commit in der Antwort

Nicht mit Commit bestätigte BLOBs werden in der Antwort nur aufgeführt, wenn im URI der Parameter include=uncommittedblobs angegeben wurde. BLOBs, für die kein Commit ausgeführt wurde, aber in der Antwort aufgeführt sind, enthalten keines der folgenden Elemente:

  • Last-Modified

  • Etag

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-MD5

  • Cache-Control

  • Metadata

Zurückgeben von Resultsets mithilfe eines Markerwerts

Wenn Sie einen Wert für den maxresults-Parameter angeben und die Anzahl der zurückzugebenden BLOBs diesen Wert oder den Standardwert für maxresults überschreitet, enthält der Antworttext ein NextMarker-Element, das das folgende BLOB angibt, das bei einer nachfolgenden Anforderung zurückgegeben werden soll. Geben Sie zum Zurückgeben des nächsten Satzes von Elementen den Wert von NextMarker als Markerparameter im URI für die nächste Anforderung an.

Beachten Sie, dass der Wert von NextMarker als nicht transparent behandelt werden muss.

Durchlaufen des BLOB-Namespace mithilfe eines Trennzeichens

Der delimiter-Parameter ermöglicht es dem Aufrufer, den BLOB-Namespace zu durchlaufen, indem ein vom Benutzer konfiguriertes Trennzeichen verwendet wird. Auf diese Weise können Sie wie in einem Dateisystem eine virtuelle Hierarchie von BLOBs durchlaufen. Das Trennzeichen kann ein einzelnes Zeichen oder eine Zeichenfolge sein. Wenn die Anforderung diesen Parameter enthält, gibt der Vorgang ein BlobPrefix-Element zurück. Das BlobPrefix-Element wird anstelle aller BLOBs zurückgegeben, deren Name bis zum Trennzeichen mit der gleichen Teilzeichenfolge beginnt. Der Wert des Elements BlobPrefix lautet substring+delimiter. Dabei ist substring die gemeinsame Teilzeichenfolge, mit der ein oder mehrere BLOB-Namen beginnen, und delimiter ist der Wert des Parameters delimiter.

Sie können den Wert von BlobPrefix für einen nachfolgenden Aufruf der Liste der BLOBs verwenden, die mit diesem Präfix beginnen, indem Sie für den BlobPrefix-Parameter im Anforderungs-URI den Wert von prefix angeben.

Beachten Sie, dass jedes zurückgegebene BlobPrefix-Element in das maximale Ergebnis eingerechnet wird, ebenso wie jedes Blob-Element.

BLOBs werden im Antworttext in alphabetischer Reihenfolge aufgeführt, wobei Großbuchstaben zuerst aufgeführt werden.

Kopierfehler in CopyStatusDescription

CopyStatusDescription enthält weitere Informationen zum Fehler bei Copy Blob.

  • Wenn bei einem Kopierversuch ein Fehler auftritt und der Blob-Dienst den Vorgang noch wiederholt, wird CopyStatus auf pending festgelegt, und der CopyStatusDescription-Text beschreibt den Fehler, der beim letzten Kopierversuch aufgetreten ist.

  • Wenn CopyStatus auf failed festgelegt wird, beschreibt der CopyStatusDescription Text den Fehler, der Kopiervorgang verursacht hat.

In der folgenden Tabelle werden die drei Felder jedes CopyStatusDescription-Werts beschrieben.

 

Komponente Beschreibung

HTTP-Statuscode

Eine standardmäßige dreistellige Zahl, die den Fehler angibt.

Fehlercode

Ein Schlüsselwort, das den von Azure im <ErrorCode>-Element bereitgestellten Fehler beschreibt. Wenn kein <ErrorCode>-Element vorhanden ist, wird ein Schlüsselwort verwendet, das den Standardfehlertext enthält, der dem dreistelligen HTTP-Statuscode in der HTTP-Spezifikation zugeordnet ist. Siehe Allgemeine REST-API-Fehlercodes.

Informationen

Eine ausführliche Fehlerbeschreibung in Anführungszeichen.

In der folgenden Tabelle werden der CopyStatus-Wert und der CopyStatusDescription-Wert von häufigen Fehlerszenarien beschrieben.

ImportantWichtig
Der hier dargestellte Beschreibungstext kann ohne entsprechenden Hinweis geändert werden, auch wenn keine Versionsänderung erfolgt. Verlassen Sie sich daher nicht auf die genaue Übereinstimmung dieses Texts.

 

Szenario CopyStatus-Wert CopyStatusDescription-Wert

Der Kopiervorgang wurde erfolgreich abgeschlossen.

success

empty

Der Kopiervorgang wurde vom Benutzer abgebrochen.

aborted

empty

Beim Lesen aus dem Quell-BLOB während eines Kopiervorgangs ist ein Fehler aufgetreten, der Vorgang wird jedoch wiederholt.

pending

502 BadGateway "Wiederholbarer Fehler beim Lesen der Quelle. Es wird versucht, den Vorgang zu wiederholen. Zeitpunkt des Fehlers: <Zeit>"

Beim Schreiben in das Ziel-BLOB eines Kopiervorgangs ist ein Fehler aufgetreten, der Vorgang wird jedoch wiederholt.

pending

500 InternalServerError "Wiederholbarer Fehler. Es wird versucht, den Vorgang zu wiederholen. Zeitpunkt des Fehlers: <Zeit>"

Beim Lesen aus dem Quell-BLOB eines Kopiervorgangs ist ein nicht behebbarer Fehler aufgetreten.

Gescheitert

404 ResourceNotFound "Fehler beim Kopieren während des Lesens der Quelle."

noteHinweis
Wenn dieser zugrunde liegende Fehler gemeldet wird, gibt Azure im ResourceNotFoundErrorCode<-Element > zurück. Wenn die Antwort kein <ErrorCode>-Element enthält, wird eine Standardzeichenfolgendarstellung des HTTP-Status, z. B. NotFound, angezeigt.

Das Timeout, das alle Kopiervorgänge einschränkt, ist abgelaufen. (Derzeit beträgt das Timeout 2 Wochen.)

Gescheitert

500 OperationCancelled "Die maximal zulässige Zeit für den Kopiervorgang wurde überschritten."

Der Kopiervorgang ist beim Lesen aus der Quelle zu häufig fehlgeschlagen, und ein minimales Verhältnis von fehlgeschlagenen zu erfolgreichen Versuchen wurde nicht erreicht. (Dieses Timeout verhindert 2 Wochen lang erneute Versuche des Vorgangs für eine fehlerhafte Quelle, bevor der Vorgang fehlschlägt.)

Gescheitert

500 OperationCancelled "Fehler beim Kopieren während des Lesens der Quelle."

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.
Anzeigen:
© 2015 Microsoft