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
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