Liste des ressources de stockage d’objets blob

L’API du service Blob inclut des opérations pour répertorier les conteneurs au sein d’un compte (opération Répertorier les conteneurs ) et les objets blob au sein d’un conteneur (opération Répertorier les objets blob ). Ces opérations ont des fonctionnalités communes.

Une opération de référencement retourne une réponse XML qui contient tout ou partie de la liste demandée. L'opération retourne les entités dans l'ordre alphabétique.

Cette rubrique contient les sous-rubriques suivantes :

Définir le nombre maximal de résultats

Récupérer des résultats de liste partielle avec des marqueurs

Filtrer les résultats de la liste

Parcourir l’espace de noms blob

Format de réponse XML

Définir le nombre maximal de résultats

Pour spécifier le nombre maximal de résultats à retourner dans un appel unique à une opération de référencement, spécifiez une valeur pour le maxresults paramètre sur l’URI de la demande.

Si le nombre maximal de résultats n’est pas spécifié dans la demande ou s’il est supérieur à 5 000, le serveur retourne jusqu’à 5 000 éléments. Si vous spécifiez un nombre maximal de résultats inférieur ou égal à zéro, le service retourne status code 400 (requête incorrecte).

Récupérer des résultats de liste partielle avec des marqueurs

La première fois que l’opération de référencement est effectuée sur une ressource particulière, la réponse peut contenir tous les résultats, ou elle peut contenir un sous-ensemble des résultats et une valeur de marqueur. La valeur du marqueur peut être passée à l’appel suivant pour retourner l’ensemble de résultats suivant (puis le suivant) jusqu’à ce que la liste soit terminée et qu’aucun marqueur n’est retourné.

La valeur du marqueur est incluse dans l'élément NextMarker de la réponse XML. Quand l'élément NextMarker est vide, la liste est terminée. La valeur de NextMarker est une valeur de chaîne opaque pour le client.

Pour retourner l'ensemble de résultats suivant dans une opération suivante, passez la valeur retournée dans la balise NextMarker en tant que paramètre marker dans l'URI de la demande.

Filtrer les résultats de la liste

La liste des résultats peut être filtrée en indiquant une chaîne de préfixe dans la demande à l'aide du paramètre prefix. L'opération de liste retourne ensuite les entités dont les noms commencent par ce préfixe. Si le paramètre prefix est indiqué dans l'URI de la demande, le code XML de réponse comprend un élément Prefix qui contient le ou les caractères de préfixe. Par exemple, la spécification d’un préfixe avec la valeur « c » retourne <Prefix>``c``</Prefix> dans le xml de réponse. Pour obtenir un exemple, consultez la section Répertorier les conteneurs plus loin dans cette rubrique.

Parcourir l’espace de noms blob

L’opération Répertorier les objets blob a un paramètre supplémentaire delimiter qui permet à l’appelant de parcourir l’espace de noms d’objets blob à l’aide d’un délimiteur configuré par l’utilisateur. Le délimiteur peut être un caractère ou une chaîne. Lorsque la demande comprend ce paramètre, l'opération renvoie un élément BlobPrefix. L'élément BlobPrefix est retourné à la place de tous les objets blob dont le nom commence par la même sous-chaîne jusqu'au caractère du délimiteur. La valeur de l'élément BlobPrefix est substring+delimiter, où substring est la sous-chaîne commune qui débute un ou plusieurs noms d'objet blob, et delimiter est la valeur du paramètre delimiter.

Vous pouvez utiliser la valeur de BlobPrefix pour effectuer un appel suivant afin de répertorier les objets blob qui commencent par ce préfixe. Spécifiez la valeur de BlobPrefix pour les requêtes suivantes. De cette façon, vous pouvez parcourir une hiérarchie virtuelle d'objets blob, comme s'il s'agissait d'un système de fichiers. Pour obtenir un exemple, consultez Répertorier les objets blob avec un délimiteur plus loin dans cette rubrique.

Notez que chaque BlobPrefix retourné compte pour le résultat maximal.

Gardez également à l’esprit que vous ne pouvez pas lister les instantanés d’objets blob si vous incluez un délimiteur avec la demande. Si vous spécifiez une valeur pour le delimiter paramètre et que vous définissez également le include=snapshots paramètre, le service Blob retourne une erreur InvalidQueryParameter (http status code 400 – Requête incorrecte).

Format de réponse XML

La sortie de liste est un document XML dont le format est identique à celui indiqué dans les exemples de code plus loin dans cette rubrique.

Le corps de la réponse inclut les valeurs de tous les paramètres qui ont été spécifiés sur l’URI de la demande en tant qu’éléments dans le corps de la réponse.

La DateTime valeur retournée dans l’élément Last-Modified est au format RFC 1123. Pour plus d’informations sur DateTime les valeurs, consultez Représentation des valeurs de date/heure dans les en-têtes.

Répertorier les conteneurs

Cet exemple montre le résultat d’une opération de référencement qui retourne deux conteneurs. L'URI de demande est le suivant :

GET https://myaccount.blob.core.windows.net/?comp=list&prefix=c&maxresults=3&include=metadata  

Le préfixe « c » a été spécifié pour filtrer la liste. Le nombre maximal de résultats à retourner a été défini à 3. La NextMarker balise affiche le nom du conteneur qui sera retourné lors d’une opération de référencement ultérieure.

<?xml version="1.0" encoding="utf-8"?>  
<EnumerationResults AccountName="https://myaccount.blob.core.windows.net/">  
  <Prefix>c</Prefix>  
  <MaxResults>3</MaxResults>  
  <Containers>  
    <Container>  
      <Name>container1</Name>  
      <Url>https://myaccount.blob.core.windows.net/container1</Url>  
      <Properties>  
        <Last-Modified>Sun, 27 Sep 2009 18:09:03 GMT</Last-Modified>  
        <Etag>0x8CAE7D0C4AF4487</Etag>  
      </Properties>  
      <Metadata>  
        <Color>orange</Color>  
        <ContainerNumber>01</ContainerNumber>  
        <SomeMetadataName>SomeMetadataValue</SomeMetadataName>  
      </Metadata>  
    </Container>  
    <Container>  
      <Name>container2</Name>  
      <Url>https://myaccount.blob.core.windows.net/container2</Url>  
      <Properties>  
        <Last-Modified>Sun, 27 Sep 2009 17:26:40 GMT</Last-Modified>  
        <Etag>0x8CAE7CAD8C24928</Etag>  
      </Properties>  
      <Metadata>  
        <Color>pink</Color>  
        <ContainerNumber>02</ContainerNumber>  
        <SomeMetadataName>SomeMetadataValue</SomeMetadataName>  
      </Metadata>  
    </Container>  
    <Container>  
      <Name>container3</Name>  
      <Url>https://myaccount.blob.core.windows.net/container3</Url>  
      <Properties>  
        <Last-Modified>Sun, 27 Sep 2009 17:26:40 GMT</Last-Modified>  
        <Etag>0x8CAE7CAD8EAC0BB</Etag>  
      </Properties>  
      <Metadata>  
        <Color>brown</Color>  
        <ContainerNumber>03</ContainerNumber>  
        <SomeMetadataName>SomeMetadataValue</SomeMetadataName>  
      </Metadata>  
    </Container>  
  </Containers>  
  <NextMarker>container4</NextMarker>  
</EnumerationResults>  

Répertorier les objets blob et les instantanés

Cet exemple montre le résultat d’une opération de référencement qui retourne des objets blob et des instantanés dans un conteneur nommé mycontainer. L'URI de demande est le suivant :

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

La réponse comprend des objets blob et des instantanés :

<?xml version="1.0" encoding="utf-8"?>  
<EnumerationResults ContainerName="https://myaccount.blob.core.windows.net/mycontainer">  
  <Blobs>  
    <Blob>  
      <Name>blob1.txt</Name>  
      <Url>https://myaccount.blob.core.windows.net/mycontainer/blob1.txt</Url>  
      <Properties>  
        <Last-Modified>Wed, 09 Sep 2009 09:20:02 GMT</Last-Modified>  
        <Etag>0x8CBFF45D8A29A19</Etag>  
        <Content-Length>100</Content-Length>  
        <Content-Type>text/html</Content-Type>  
        <Content-Encoding />  
        <Content-Language>en-US</Content-Language>  
        <Content-MD5 />  
        <Cache-Control>no-cache</Cache-Control>  
        <BlobType>BlockBlob</BlobType>  
        <LeaseStatus>unlocked</LeaseStatus>  
      </Properties>  
      <Metadata>  
        <Color>blue</Color>  
        <BlobNumber>01</BlobNumber>  
        <SomeMetadataName>SomeMetadataValue</SomeMetadataName>  
      </Metadata>  
    </Blob>  
    <Blob>  
      <Name>blob2.txt</Name>  
      <Snapshot>2009-09-09T09:20:03.0427659Z</Snapshot>  
      <Url>https://myaccount.blob.core.windows.net/mycontainer/blob2.txt?snapshot=2009-09-09T09%3a20%3a03.0427659Z</Url>  
      <Properties>  
        <Last-Modified>Wed, 09 Sep 2009 09:20:02 GMT</Last-Modified>  
        <Etag>0x8CBFF45D8B4C212</Etag>  
        <Content-Length>5000</Content-Length>  
        <Content-Type>application/octet-stream</Content-Type>  
        <Content-Encoding>gzip</Content-Encoding>  
        <Content-Language />  
        <Content-MD5 />  
        <Cache-Control />  
        <BlobType>BlockBlob</BlobType>  
      </Properties>  
      <Metadata>  
        <Color>green</Color>  
        <BlobNumber>02</BlobNumber>  
        <SomeMetadataName>SomeMetadataValue</SomeMetadataName>  
        <x-ms-invalid-name>nasdf$@#$$</x-ms-invalid-name>  
      </Metadata>  
    </Blob>  
    <Blob>  
      <Name>blob2.txt</Name>  
      <Snapshot>2009-09-09T09:20:03.1587543Z</Snapshot>  
      <Url>https://myaccount.blob.core.windows.net/mycontainer/blob2.txt?snapshot=2009-09-09T09%3a20%3a03.1587543Z</Url>  
      <Properties>  
        <Last-Modified>Wed, 09 Sep 2009 09:20:02 GMT</Last-Modified>  
        <Etag>0x8CBFF45D8B4C212</Etag>  
        <Content-Length>5000</Content-Length>  
        <Content-Type>application/octet-stream</Content-Type>  
        <Content-Encoding>gzip</Content-Encoding>  
        <Content-Language />  
        <Content-MD5 />  
        <Cache-Control />  
        <BlobType>BlockBlob</BlobType>  
      </Properties>  
      <Metadata>  
        <Color>green</Color>  
        <BlobNumber>02</BlobNumber>  
        <SomeMetadataName>SomeMetadataValue</SomeMetadataName>  
      </Metadata>  
    </Blob>  
    <Blob>  
      <Name>blob2.txt</Name>  
      <Url>https://myaccount.blob.core.windows.net/mycontainer/blob2.txt</Url>  
      <Properties>  
        <Last-Modified>Wed, 09 Sep 2009 09:20:02 GMT</Last-Modified>  
        <Etag>0x8CBFF45D8B4C212</Etag>  
        <Content-Length>5000</Content-Length>  
        <Content-Type>application/octet-stream</Content-Type>  
        <Content-Encoding>gzip</Content-Encoding>  
        <Content-Language />  
        <Content-MD5 />  
        <Cache-Control />  
        <BlobType>BlockBlob</BlobType>  
        <LeaseStatus>unlocked</LeaseStatus>  
      </Properties>  
      <Metadata>  
        <Color>green</Color>  
        <BlobNumber>02</BlobNumber>  
        <SomeMetadataName>SomeMetadataValue</SomeMetadataName>  
      </Metadata>  
    </Blob>  
    <Blob>  
      <Name>blob3.txt</Name>  
      <Url>https://myaccount.blob.core.windows.net/mycontainer/blob3.txt</Url>  
      <Properties>  
        <Last-Modified>Wed, 09 Sep 2009 09:20:03 GMT</Last-Modified>  
        <Etag>0x8CBFF45D911FADF</Etag>  
        <Content-Length>16384</Content-Length>  
        <Content-Type>image/jpeg</Content-Type>  
        <Content-Encoding />  
        <Content-Language />  
        <Content-MD5 />  
        <Cache-Control />  
        <x-ms-blob-sequence-number>3</x-ms-blob-sequence-number>  
        <BlobType>PageBlob</BlobType>  
        <LeaseStatus>locked</LeaseStatus>  
      </Properties>  
      <Metadata>  
        <Color>yellow</Color>  
        <BlobNumber>03</BlobNumber>  
        <SomeMetadataName>SomeMetadataValue</SomeMetadataName>  
      </Metadata>  
    </Blob>  
  </Blobs>  
  <NextMarker />   
</EnumerationResults>  

Répertorier les objets blob avec un délimiteur

Cet exemple montre le résultat d’une opération de référencement qui retourne des objets blob sous un conteneur nommé mycontainer. L'URI de demande est le suivant :

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

Dans ce cas, le delimiter paramètre est spécifié en tant que /. Le corps de la réponse inclut la BlobPrefix balise, qui représente le groupe d’objets blob qui commencent par la même sous-chaîne, y compris le délimiteur.

Les objets blob d'exemple sous le conteneur sont les suivants. Les quatre premiers sont retournés dans la première opération de référencement, car MaxResults est défini sur 4. Notez que myfolder/blobA.txt et myfolder/blobB.txt sont regroupés dans le corps de la réponse dans la BlobPrefix balise et comptent en tant qu’objet blob unique en termes de nombre d’entités retournées. Pour retourner les objets blob qui commencent par ce préfixe, effectuez une requête suivante dans laquelle le paramètre prefix est défini sur myfolder/.

  • blob1.txt

  • blob2.txt

  • myfolder/blobA.txt

  • myfolder/blobB.txt

  • newblob1.txt

  • newblob2.txt

L’objet blob suivant à retourner est newblob2.txt. Le nom de l’objet blob est fourni dans la NextMarker balise .

<?xml version="1.0" encoding="utf-8"?>  
<EnumerationResults ContainerName="https://myaccount.blob.core.windows.net/mycontainer">  
  <MaxResults>4</MaxResults>  
  <Blobs>  
    <Blob>  
      <Name>blob1.txt</Name>  
      <Url>https://myaccount.blob.core.windows.net/mycontainer/blob1.txt</Url>  
      <Properties>  
        <Last-Modified>Sun, 27 Sep 2009 18:41:57 GMT</Last-Modified>  
        <Etag>0x8CAE7D55D050B8B</Etag>  
        <Content-Length>8</Content-Length>  
        <Content-Type>text/html</Content-Type>  
        <Content-Encoding />  
        <Content-Language>en-US</Content-Language>  
        <Content-MD5 />  
        <Cache-Control>no-cache</Cache-Control>  
        <BlobType>BlockBlob</BlobType>  
        <LeaseStatus>unlocked</LeaseStatus>  
      <Properties>  
    </Blob>  
    <Blob>  
      <Name>blob2.txt</Name>  
      <Url>https://myaccount.blob.core.windows.net/mycontainer/blob2.txt</Url>  
      <Properties>  
        <Last-Modified>Sun, 27 Sep 2009 12:18:50 GMT</Last-Modified>  
        <Etag>0x8CAE7D55CF6C339</Etag>  
        <Content-Length>100</Content-Length>  
        <Content-Type>text/html</Content-Type>  
        <Content-Encoding />  
        <Content-Language>en-US</Content-Language>  
        <Content-MD5 />  
        <Cache-Control>no-cache</Cache-Control>  
        <BlobType>BlockBlob</BlobType>  
        <LeaseStatus>unlocked</LeaseStatus>  
      </Properties>  
    </Blob>  
    <BlobPrefix>  
      <Name>myfolder/</Name>  
    </BlobPrefix>  
    <Blob>  
      <Name>newblob1.txt</Name>  
      <Url>https://myaccount.blob.core.windows.net/mycontainer/newblob1.txt</Url>  
      <Properties>  
        <Last-Modified>Sun, 27 Sep 2009 16:31:57 GMT</Last-Modified>  
        <Etag>0x8CAE7D55CF6C339</Etag>  
        <Content-Length>25</Content-Length>  
        <Content-Type>text/html</Content-Type>  
        <Content-Encoding />  
        <Content-Language>en-US</Content-Language>  
        <Content-MD5 />  
        <Cache-Control>no-cache</Cache-Control>  
        <BlobType>BlockBlob</BlobType>  
        <LeaseStatus>unlocked</LeaseStatus>  
      </Properties>  
    </Blob>  
  </Blobs>  
  <NextMarker>newblob2.txt</NextMarker>  
</EnumerationResults>  

Répertorier les objets blob dans le conteneur racine

Pour répertorier les objets blob dans le conteneur racine, vous pouvez utiliser l’URL suivante :

https://myaccount.blob.core.windows.net/$root?restype=container&comp=list&maxresults=10  

N’oubliez pas que lorsque vous répertoriez les objets blob dans le conteneur racine, le corps de la réponse XML n’inclut pas de référence explicite au conteneur racine dans le champ de URL l’objet blob. Voici un exemple de réponse qui répertorie les objets blob dans le conteneur racine :

  
<?xml version="1.0" encoding="utf-8"?>  
<EnumerationResults ContainerName="https://myaccount.blob.core.windows.net/%24root">  
  <MaxResults>10</MaxResults>  
  <Blobs>  
    <Blob>  
      <Name>rootblob1.txt</Name>  
      <Url>https://myaccount.blob.core.windows.net/rootblob1.txt</Url>  
      <Properties>  
        <Last-Modified>Sun, 27 Sep 2009 18:41:48 GMT</Last-Modified>  
        <Etag>0x8CAE7D55D050B8B</Etag>  
        <Content-Length>25</Content-Length>  
        <Content-Type>text/html</Content-Type>  
        <Content-Encoding />  
        <Content-Language>en-US</Content-Language>  
        <Content-MD5 />  
        <Cache-Control>no-cache</Cache-Control>  
        <BlobType>BlockBlob</BlobType>  
        <LeaseStatus>unlocked</LeaseStatus>  
      </Properties>  
   </Blob>  
    <Blob>  
      <Name>rootblob2.txt</Name>  
      <Url>https://myaccount.blob.core.windows.net/rootblob2.txt</Url>  
      <Properties>  
        <Last-Modified>Sun, 27 Sep 2009 18:45:57 GMT</Last-Modified>  
        <Etag>0x8CAE7D55CF6C339</Etag>  
        <Content-Length>14</Content-Length>  
        <Content-Type>text/plain; charset=UTF-8</Content-Type>  
        <Content-Encoding />  
        <Content-Language>en-US</Content-Language>  
        <Content-MD5 />  
        <Cache-Control>no-cache</Cache-Control>  
        <BlobType>BlockBlob</BlobType>  
        <LeaseStatus>unlocked</LeaseStatus>  
      </Properties>  
    </Blob>  
  </Blobs>  
</EnumerationResults>  
  

Voir aussi

Lister des conteneurs
Lister les objets blob
Concepts de service Blob
Contrôle de version pour les services de stockage Azure