List Containers

Der List Containers Vorgang gibt eine Liste der Container unter dem angegebenen Speicherkonto zurück.

Anforderung

Sie können die List Containers Anforderung wie folgt erstellen. HTTPS wird empfohlen. Ersetzen Sie myaccount durch den Namen Ihres Speicherkontos.

Methode Anforderungs-URI HTTP-Version
GET https://myaccount.blob.core.windows.net/?comp=list HTTP/1.1

Beachten Sie, dass der URI immer einen Schrägstrich (/) enthalten muss, um den Hostnamen vom Pfad- und Abfrageteil des URIs zu trennen. Beim List Containers-Vorgang ist der Pfadteil des URIs leer.

Emulierte Speicherdienstanforderung

Wenn Sie eine Anforderung für den emulierten Speicherdienst stellen, geben Sie den Hostnamen des Emulators und Azure Blob Storage Port als 127.0.0.1:10000an, gefolgt vom Namen des emulierten Speicherkontos.

Methode Anforderungs-URI HTTP-Version
GET http://127.0.0.1:10000/devstoreaccount1?comp=list HTTP/1.1

Beachten Sie, dass emulierter Speicher nur Blobgrößen bis zu 2 GiB unterstützt.

Weitere Informationen finden Sie unter Verwenden des Azurite-Emulators für die lokale Azure Storage-Entwicklung und Unterschiede zwischen dem Speicheremulator und azure Storage-Diensten.

URI-Parameter

Sie können die folgenden zusätzlichen Parameter für den Anforderungs-URI angeben.

Parameter BESCHREIBUNG
prefix Optional. Filtert die Ergebnisse so, dass nur Container mit einem Namen zurückgegeben werden, der mit dem angegebenen Präfix beginnt.
marker Optional. Ein Zeichenfolgenwert, der den Teil der Liste der Container angibt, die beim nächsten Listenvorgang zurückgegeben werden sollen. Der Vorgang gibt den NextMarker Wert innerhalb des Antworttexts zurück, wenn der Auflistungsvorgang nicht alle Container zurückgegeben hat, die noch mit der aktuellen Seite aufgelistet werden sollen. Sie können den NextMarker Wert als Wert für den marker Parameter in einem nachfolgenden Aufruf verwenden, um die nächste Seite der Listenelemente anzufordern.

Der Markerwert ist für den Client nicht transparent.
maxresults Optional. Gibt die maximale Anzahl von Containern an, die zurückgegeben werden sollen. Wenn die Anforderung nicht oder maxresultseinen Wert größer als 5000 angibt, gibt der Server bis zu 5.000 Elemente zurück.

Beachten Sie, dass der Dienst ein Fortsetzungstoken zum Abrufen der restlichen Ergebnisse zurückgibt, wenn der Listenvorgang eine Partitionsgrenze überschreitet. Aus diesem Grund ist es möglich, dass der Dienst weniger Ergebnisse zurückgibt als durch maxresultsangegeben oder als der Standardwert 5000.

Wenn der Parameter auf einen Wert kleiner oder gleich 0 festgelegt ist, gibt der Server status Code 400 (Ungültige Anforderung) zurück.
include={metadata,deleted,system} Optional. Gibt ein oder mehrere Datasets an, die in der Antwort eingeschlossen werden sollen:

-metadata: Beachten Sie, dass mit diesem Parameter angeforderte Metadaten gemäß den Benennungseinschränkungen gespeichert werden müssen, die von der 2009-09-19-Version von Blob Storage auferlegt wurden. Ab dieser Version müssen alle Metadatennamen den Benennungskonventionen für C#-Bezeichner entsprechen.
-deleted: Version 2019-12-12 und höher. Gibt an, dass vorläufig gelöschte Container in die Antwort eingeschlossen werden sollen.
-system: Version 2020-10-02 und höher. Gibt an, ob Systemcontainer in die Antwort einbezogen werden sollen. Wenn Sie diese Option einschließen, werden Systemcontainer aufgelistet, z. B $logs . und $changefeed. Beachten Sie, dass die zurückgegebenen systemspezifischen Container variieren, je nachdem, welche Dienstfeatures für das Speicherkonto aktiviert sind.
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. 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-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.

Anforderungstext

Keine.

Antwort

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

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 enthält auch zusätzliche HTTP-Standardheader. Alle Standardheader entsprechen der HTTP/1.1-Protokollspezifikation.

Antwortheader BESCHREIBUNG
Content-Type HTTP/1.1-Standardheader. Gibt das Format an, in dem die Ergebnisse zurückgegeben werden. Derzeit ist application/xmldieser Wert .
x-ms-request-id Dieser Header identifiziert eindeutig die Anforderung, die gestellt wurde, 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 von Blob Storage an, die zum Ausführen der Anforderung verwendet wird. Dieser Header wird für Anforderungen zurückgegeben, die für Version 2009-09-19 und höher erfolgen.
Date Ein UTC-Datums-/Uhrzeitwert, der die Uhrzeit angibt, zu der die Antwort initiiert wurde. Der Dienst generiert diesen Wert.
x-ms-client-request-id Sie können diesen Header verwenden, um Probleme mit Anforderungen und entsprechenden Antworten zu beheben. Der Wert dieses Headers entspricht dem Wert des x-ms-client-request-id Headers, wenn er in der Anforderung vorhanden ist. Der Wert ist höchstens 1024 sichtbare ASCII-Zeichen. Wenn der x-ms-client-request-id Header in der Anforderung nicht vorhanden ist, ist dieser Header in der Antwort nicht vorhanden.

Antworttext

Das Format des Antworttexts sieht wie folgt aus.

<?xml version="1.0" encoding="utf-8"?>  
<EnumerationResults ServiceEndpoint="https://myaccount.blob.core.windows.net">  
  <Prefix>string-value</Prefix>  
  <Marker>string-value</Marker>  
  <MaxResults>int-value</MaxResults>  
  <Containers>  
    <Container>  
      <Name>container-name</Name>  
      <Version>container-version</Version>
      <Deleted>true</Deleted>
      <Properties>  
        <Last-Modified>date/time-value</Last-Modified>  
        <Etag>etag</Etag>  
        <LeaseStatus>locked | unlocked</LeaseStatus>  
        <LeaseState>available | leased | expired | breaking | broken</LeaseState>  
        <LeaseDuration>infinite | fixed</LeaseDuration> 
        <PublicAccess>container | blob</PublicAccess>
        <HasImmutabilityPolicy>true | false</HasImmutabilityPolicy>
        <HasLegalHold>true | false</HasLegalHold>
        <DeletedTime>datetime</DeletedTime>
        <RemainingRetentionDays>no-of-days</RemainingRetentionDays>
      </Properties>  
      <Metadata>  
        <metadata-name>value</metadata-name>  
      </Metadata>  
    </Container>  
  </Containers>  
  <NextMarker>marker-value</NextMarker>  
</EnumerationResults>  

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

Ab Version 2013-08-15 wurde das AccountName-Attribut für das EnumerationResults-Element in ServiceEndpoint umbenannt. Darüber hinaus wurde das URL-Element aus dem Container-Element entfernt. Für Versionen vor 2013-08-15 enthält die URL des Containers, wie im URL Feld angegeben, den restype=container Parameter nicht. Wenn Sie diesen Wert verwenden, um nachfolgende Anforderungen für die aufgezählten Container auszuführen, fügen Sie diesen Parameter an, um anzugeben, dass die Ressource ein Container ist.

Die PrefixElemente , Marker, und MaxResults sind nur vorhanden, wenn Sie sie für den URI angeben. Das NextMarker Element verfügt nur dann über einen Wert, wenn die Listenergebnisse nicht vollständig sind.

Das Metadata Element ist nur vorhanden, wenn Sie den include=metadata Parameter für den URI angeben. Im Metadata-Element wird der Wert jedes Name-Wert-Paars in einem Element aufgelistet, das dem Namen des Paars entspricht.

Wenn ein Metadatenname-Wert-Paar gegen die Benennungseinschränkungen verstößt, die von der Version 2009-09-19 erzwungen wurden, gibt der Antworttext den problematischen Namen innerhalb eines Elements an x-ms-invalid-name . Das folgende XML-Fragment zeigt folgendes:

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

Ab version 2016-05-31 werden die öffentlichen Containerberechtigungen in der PublicAccess -Eigenschaft bereitgestellt. Es gibt an, ob auf Daten im Container öffentlich zugegriffen werden kann, und die Zugriffsebene. Mögliche Werte sind:

  • container: Gibt den vollständigen öffentlichen Lesezugriff für Container- und Blobdaten an. Clients können Blobs innerhalb des Containers über eine anonyme Anforderung aufzählen, aber keine Container innerhalb des Speicherkontos auflisten.
  • blob: Gibt öffentlichen Lesezugriff für Blobs an. Blobdaten in diesem Container können über eine anonyme Anforderung gelesen werden, Containerdaten sind jedoch nicht verfügbar. Clients können Blobs innerhalb des Containers nicht über eine anonyme Anforderung aufzählen.

Wenn diese Eigenschaft im <properties> Abschnitt nicht angegeben ist, ist der Container für den Kontobesitzer privat.

HasImmutabilityPolicy und HasLegalHold werden nur in Version 2017-11-09 und höher angezeigt. HasImmutabilityPolicy ist, wenn für den Container eine Unveränderlichkeitsrichtlinie festgelegt ist true , andernfalls false . HasLegalHold ist true , wenn der Container über einen oder mehrere gesetzliche Haltebereiche verfügt, andernfalls false .

Hinweis

Ab Version 2009-09-19 gibt der Antworttext für List Containers den Zeitpunkt der letzten Änderung des Containers in einem Element mit dem Namen Last-Modifiedzurück. In früheren Versionen lautete der Name dieses Elements LastModified.

Die VersionElemente , Deleted, DeletedTimeund RemainingRetentiondays werden nur in Version 2019-12-12 und höher angezeigt, wenn Sie den deleted Wert für den Abfrageparameter includeangeben. Diese Elemente werden nur angezeigt, wenn der Container vorläufig gelöscht wurde und für die Wiederherstellung berechtigt ist. Die VersionElemente , Deleted, DeletedTimeund RemainingRetentiondays werden nur in Version 2019-12-12 und höher angezeigt, wenn der gelöschte Wert für den include Abfrageparameter angegeben ist und der Container vorläufig gelöscht und wiederhergestellt werden kann.

Authorization

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

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

Im Folgenden sind die RBAC-Aktion aufgeführt, die für einen Microsoft Entra Benutzer, Eine Gruppe oder einen Dienstprinzipal erforderlich ist, um den List Containers 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

Wenn Sie einen Wert für den maxresults Parameter angeben und die Anzahl der zurückzugebenden Container diesen Wert überschreitet oder den Standardwert für maxresultsüberschreitet, enthält der Antworttext das NextMarker -Element. (Dies wird auch als Fortsetzungstoken bezeichnet.

NextMarker gibt den nächsten Container an, der bei einer nachfolgenden Anforderung zurückgegeben werden soll. Um den nächsten Satz von Elementen zurückzugeben, geben Sie den Wert von NextMarker für den marker Parameter für den URI für die nachfolgende Anforderung an. Beachten Sie, dass der Wert von NextMarker als nicht transparent behandelt werden muss.

Wenn der Auflistungsvorgang eine Partitionsgrenze überschreitet, gibt der Dienst einen Wert für das NextMarker Element zurück, um den Rest der Ergebnisse von der nächsten Partition abzurufen. Ein Auflistungsvorgang, der mehr als eine Partition umfasst, führt dazu, dass ein kleinerer Satz von Elementen zurückgegeben wird, als durch maxresultsoder als der Standardwert 5000 angegeben wird. Ihre Anwendung sollte immer überprüfen, ob das NextMarker Element vorhanden ist, wenn Sie einen Listenvorgang ausführen, und es entsprechend behandeln.

Container werden im Antworttext in alphabetischer Reihenfolge aufgeführt.

Das Timeout des List Containers-Vorgangs beträgt 30 Sekunden.

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 List Containers Anforderungen basierend auf dem Speicherkontotyp:

Vorgang Speicherkontotyp Abrechnungskategorie
List Containers Premium, Blockblob
Standard „Allgemein v2“
Standard „Allgemein v1“
Auflisten und Erstellen von Containervorgängen

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

Beispielanforderung und -antwort

Der folgende Beispiel-URI fordert die Liste der Container für ein Konto an, und legt die maximalen Ergebnisse fest, die für den ersten Vorgang zurückgegeben werden sollen, auf drei.

GET https://myaccount.blob.core.windows.net/?comp=list&maxresults=3 HTTP/1.1  

Die Anforderung wird mit den folgenden Headern gesendet:

x-ms-version: 2016-05-31  
x-ms-date: Wed, 26 Oct 2016 22:08:44 GMT  
Authorization: SharedKey myaccount:CY1OP3O3jGFpYFbTCBimLn0Xov0vt0khH/D5Gy0fXvg=  

Der Statuscode und die Antwortheader werden wie folgt zurückgegeben:

HTTP/1.1 200 OK  
Transfer-Encoding: chunked  
Content-Type: application/xml  
Date: Wed, 26 Oct 2016 22:08:54 GMT  
x-ms-version: 2016-05-31  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  
  

Das Antwort-XML für diese Anforderung lautet wie folgt. Beachten Sie, dass das NextMarker Element dem Satz von Containern folgt und den Namen des nächsten Containers enthält, der zurückgegeben werden soll.

<?xml version="1.0" encoding="utf-8"?>  
<EnumerationResults ServiceEndpoint="https://myaccount.blob.core.windows.net/">  
  <MaxResults>3</MaxResults>  
  <Containers>  
    <Container>  
      <Name>audio</Name>  
      <Properties>  
        <Last-Modified>Wed, 26 Oct 2016 20:39:39 GMT</Last-Modified>  
        <Etag>0x8CACB9BD7C6B1B2</Etag> 
        <PublicAccess>container</PublicAccess> 
      </Properties>  
    </Container>  
    <Container>  
      <Name>images</Name>  
      <Properties>  
        <Last-Modified>Wed, 26 Oct 2016 20:39:39 GMT</Last-Modified>  
        <Etag>0x8CACB9BD7C1EEEC</Etag>  
      </Properties>  
    </Container>  
    <Container>  
      <Name>textfiles</Name>  
      <Properties>  
        <Last-Modified>Wed, 26 Oct 2016 20:39:39 GMT</Last-Modified>  
        <Etag>0x8CACB9BD7BACAC3</Etag>  
      </Properties>  
    </Container>  
  </Containers>  
  <NextMarker>video</NextMarker>  
</EnumerationResults>  

Der folgende Auflistungsvorgang gibt den Marker im Anforderungs-URI wie folgt an. Der nächste Satz von Ergebnissen wird zurückgegeben, beginnend mit dem container, der vom Marker angegeben wird.

https://myaccount.blob.core.windows.net/?comp=list&maxresults=3&marker=video  

Weitere Informationen

Autorisieren von Anforderungen an Azure Storage
Status- und Fehlercodes
Blob Storage-Fehlercodes
Auflisten von Blobressourcen
Verwenden des Azure Storage-Emulators für Entwicklung und Tests
Festlegen von Timeouts für Blob Storage-Vorgänge