Get Block ListGet Block List

L'opération Get Block List extrait la liste des blocs qui ont été téléchargés dans le cadre d'un objet blob de blocs.The Get Block List operation retrieves the list of blocks that have been uploaded as part of a block blob.

Deux listes de blocs sont tenues à jour pour un objet blob :There are two block lists maintained for a blob:

  • Liste de blocs validés : Liste des blocs qui ont été validés avec succès dans un objet BLOB donné avec la liste de blocs put.Committed Block List: The list of blocks that have been successfully committed to a given blob with Put Block List.

  • Liste de blocs non validés : Liste des blocs qui ont été téléchargés pour un objet blob à l’aide du bloc put, mais qui n’ont pas encore été validés.Uncommitted Block List: The list of blocks that have been uploaded for a blob using Put Block, but that have not yet been committed. Ces blocs sont stockés dans Azure et associés à un objet blob, mais ne font pas partie de l'objet blob.These blocks are stored in Azure in association with a blob, but do not yet form part of the blob.

Vous pouvez appeler Get Block List pour retourner la liste des blocs validés, la liste des blocs non validés ou les deux listes.You can call Get Block List to return the committed block list, the uncommitted block list, or both lists. Vous pouvez également appeler cette opération pour extraire la liste des blocs validés pour un instantané.You can also call this operation to retrieve the committed block list for a snapshot.

RequêteRequest

La demande Get Block List peut être construite comme indiqué ci-dessous.The Get Block List request may be constructed as follows. HTTPS est recommandé.HTTPS is recommended. Remplacez moncompte par le nom de votre compte de stockage :Replace myaccount with the name of your storage account:

URI de demande de méthode GETGET Method Request URI Version HTTPHTTP 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.1HTTP/1.1

URI du service de stockage émuléEmulated storage service URI

Lorsque vous élaborez une demande pour le service de stockage émulé, spécifiez le nom d'hôte de l'émulateur et le port de service BLOB sous la forme 127.0.0.1:10000, suivi du nom de compte de stockage émulé :When making a request against the emulated storage service, specify the emulator hostname and Blob service port as 127.0.0.1:10000, followed by the emulated storage account name:

URI de demande de méthode GETGET Method Request URI Version HTTPHTTP Version
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=blocklist HTTP/1.1HTTP/1.1

Pour plus d’informations, consultez utilisation de l’émulateur de stockage Azure pour le développement et le test.For more information, see Using the Azure Storage Emulator for Development and Testing.

Paramètres d’URIURI parameters

Les paramètres supplémentaires suivants peuvent être spécifiés dans l'URI de la demande.The following additional parameters may be specified on the request URI.

Paramètre d’URIURI Parameter DescriptionDescription
snapshot facultatif.Optional. Le paramètre d'instantané est une valeur DateTime opaque qui, lorsqu'elle est présente, spécifie la liste d'objets blob à récupérer.The snapshot parameter is an opaque DateTime value that, when present, specifies the blob list to retrieve. Pour plus d’informations sur l’utilisation des instantanés d’objets BLOB, consultez création d’un instantané d’un objet BLOB.For more information on working with blob snapshots, see Creating a Snapshot of a Blob.
versionid Facultatif pour les versions 2019-12-12 et ultérieures.Optional for versions 2019-12-12 and newer. Le paramètre VersionId est une DateTime valeur opaque qui, lorsqu’elle est présente, spécifie la version de l’objet blob à récupérer.The versionid parameter is an opaque DateTime value that, when present, specifies the version of the blob to retrieve.
blocklisttype Indique quelle liste retourner : liste des blocs validés, liste des blocs non validés ou ces deux listes.Specifies whether to return the list of committed blocks, the list of uncommitted blocks, or both lists together. Les valeurs valides sont committed, uncommitted ou all.Valid values are committed, uncommitted, or all. Si ce paramètre est omis, Get Block List retourne la liste des blocs validés.If you omit this parameter, Get Block List returns the list of committed blocks.
timeout facultatif.Optional. Le paramètre timeout est exprimé en secondes.The timeout parameter is expressed in seconds. Pour plus d’informations, consultez définition de délais d’attente pour les opérations de service BLOB.For more information, see Setting Timeouts for Blob Service Operations.

En-têtes de requêteRequest Headers

Le tableau suivant décrit les en-têtes de demande obligatoires ou facultatifs.The following table describes required and optional request headers.

En-tête de la demandeRequest Header DescriptionDescription
Authorization Obligatoire.Required. Spécifie le schéma d’autorisation, le nom de compte et la signature.Specifies the authorization scheme, account name, and signature. Pour plus d’informations, consultez autoriser les demandes dans le stockage Azure.For more information, see Authorize requests to Azure Storage.
Date ou x-ms-dateDate or x-ms-date Obligatoire.Required. Spécifie la date/heure en temps universel coordonné (UTC) pour la requête.Specifies the Coordinated Universal Time (UTC) for the request. Pour plus d’informations, consultez autoriser les demandes dans le stockage Azure.For more information, see Authorize requests to Azure Storage.
x-ms-version Obligatoire pour toutes les demandes autorisées, facultatif pour les demandes anonymes.Required for all authorized requests, optional for anonymous requests. Spécifie la version de l'opération à utiliser pour cette demande.Specifies the version of the operation to use for this request. Pour plus d’informations, consultez contrôle de version pour les services de stockage Azure.For more information, see Versioning for the Azure Storage Services.
x-ms-lease-id:<ID> facultatif.Optional. Si cet en-tête est spécifié, l'opération sera exécutée uniquement si les deux conditions suivantes sont remplies :If this header is specified, the operation will be performed only if both of the following conditions are met:

-Le bail de l’objet blob est actuellement actif.- The blob's lease is currently active.
-L’ID de bail spécifié dans la demande correspond à celui de l’objet BLOB.- The lease ID specified in the request matches that of the blob.

Si cet en-tête est spécifié et que ces deux conditions ne sont pas remplies, la demande échoue et l'opération échoue avec le code d'état 412 (Échec de la précondition).If this header is specified and both of these conditions are not met, the request will fail and the operation will fail with status code 412 (Precondition Failed).
x-ms-client-request-id facultatif.Optional. Fournit une valeur opaque générée par le client avec une limite de 1 Kio de caractères qui est enregistrée dans les journaux d’analyse lorsque la journalisation de l’analyse de stockage est activée.Provides a client-generated, opaque value with a 1 KiB character limit that is recorded in the analytics logs when storage analytics logging is enabled. L’utilisation de cet en-tête est fortement recommandée pour la mise en corrélation des activités côté client avec les requêtes reçues par le serveur.Using this header is highly recommended for correlating client-side activities with requests received by the server. Pour plus d’informations, consultez à propos de la journalisation des Storage Analytics et de la journalisation Azure : utilisation des journaux pour suivre les demandes de stockage.For more information, see About Storage Analytics Logging and Azure Logging: Using Logs to Track Storage Requests.

Cette opération prend également en charge l'utilisation d'en-têtes conditionnels pour exécuter l'opération uniquement si une condition est remplie.This operation also supports the use of conditional headers to execute the operation only if a specified condition is met. Pour plus d’informations, consultez Spécification des en-têtes conditionnels pour les opérations du service Blob.For more information, see Specifying Conditional Headers for Blob Service Operations.

Corps de la demandeRequest Body

Aucun.None.

Exemple de demandeSample Request

L'exemple d'URI de demande suivant retourne la liste des blocs validés pour un objet blob nommé MOV1.avi :The following sample request URI returns the committed block list for a blob named MOV1.avi:

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

L'exemple d'URI de demande suivant retourne les listes de blocs validés et non validés :The following sample request URI returns both the committed and the uncommitted block list:

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

L'exemple d'URI de demande suivant retourne la liste des blocs validés pour un instantané.The following sample request URI returns the committed block list for a snapshot. Notez qu'un instantané se compose uniquement de blocs validés, il n'y a donc aucun bloc non validé associé.Note that a snapshot consists only of committed blocks, so there are no uncommitted blocks associated with it.

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

responseResponse

La réponse comprend un code d'état HTTP, un ensemble d'en-têtes de réponse et un corps de réponse contenant la liste des blocs.The response includes an HTTP status code, a set of response headers, and a response body containing the list of blocks.

Code d’étatStatus Code

Une opération réussie envoie le code d'état 200 (OK).A successful operation returns status code 200 (OK).

Pour plus d’informations sur les codes d’État, consultez codes d’État et d’erreur.For information about status codes, see Status and Error Codes.

En-têtes de réponseResponse Headers

La réponse de l'opération inclut les en-têtes suivants.The response for this operation includes the following headers. La réponse peut aussi inclure des en-têtes HTTP standard supplémentaires.The response may also include additional standard HTTP headers. Tous les en-têtes standard sont conformes à la spécification du protocole HTTP/1.1.All standard headers conform to the HTTP/1.1 protocol specification.

En-tête de réponseResponse header DescriptionDescription
Last-Modified Date et heure de la dernière modification apportée à l'objet blob.The date/time that the blob was last modified. Le format de date est conforme à la RFC 1123.The date format follows RFC 1123. Pour plus d’informations, consultez représentation des valeurs de date et d’heure dans les en-têtes .See Representation of Date-Time Values in Headers for more information. Cet en-tête est retourné uniquement si l'objet blob a des blocs validés.This header is returned only if the blob has committed blocks.

Une opération qui modifie l'objet blob, y compris les mises à jour des métadonnées ou des propriétés de l'objet blob, change l'heure de la dernière modification de l'objet blob.Any operation that modifies the blob, including updates to the blob's metadata or properties, changes the last modified time of the blob.
ETag ETag pour l'objet blob.The ETag for the blob. Cet en-tête est retourné uniquement si l'objet blob a des blocs validés.This header is returned only if the blob has committed blocks.
Content-Type Le type de contenu MIME de l'objet blob.The MIME content type of the blob. La valeur par défaut est application/xml.The default value is application/xml.
x-ms-blob-content-length Taille de l’objet blob en octets.The size of the blob in bytes.
x-ms-request-id Cet en-tête identifie de façon unique la demande qui a été effectuée et peut être utilisé pour résoudre les problèmes de la demande.This header uniquely identifies the request that was made and can be used for troubleshooting the request. Pour plus d’informations, consultez Troubleshooting API Operations.For more information, see Troubleshooting API Operations.
x-ms-version Indique la version du service BLOB utilisée pour exécuter la demande.Indicates the version of the Blob service used to execute the request. Cet en-tête est renvoyé pour les demandes effectuées avec la version 2009-09-19 ou une version ultérieure.This header is returned for requests made against version 2009-09-19 and later.

Cet en-tête est également retourné pour les demandes anonymes sans version spécifiée si le conteneur était marqué pour un accès public à l'aide de la version du 19/09/2009 du service BLOB.This header is also returned for anonymous requests without a version specified if the container was marked for public access using the 2009-09-19 version of the Blob service. Notez que seule la liste des blocs validés peut être retournée via une demande anonyme.Note that only the committed block list can be returned via an anonymous request.
Date Une valeur de date/heure UTC générée par le service qui indique le moment auquel la réponse a été initiée.A UTC date/time value generated by the service that indicates the time at which the response was initiated.
x-ms-client-request-id Cet en-tête peut être utilisé pour dépanner les demandes et les réponses correspondantes.This header can be used to troubleshoot requests and corresponding responses. La valeur de cet en-tête est égale à la valeur de l' x-ms-client-request-id en-tête si elle est présente dans la demande et que la valeur est supérieure à 1024 caractères ASCII visibles.The value of this header is equal to the value of the x-ms-client-request-id header if it is present in the request and the value is at most 1024 visible ASCII characters. Si l' x-ms-client-request-id en-tête n’est pas présent dans la demande, cet en-tête ne sera pas présent dans la réponse.If the x-ms-client-request-id header is not present in the request, this header will not be present in the response.

Cette opération prend également en charge l'utilisation d'en-têtes conditionnels pour obtenir la liste noire uniquement si une condition est remplie.This operation also supports the use of conditional headers to get the block list only if a specified condition is met. Pour plus d’informations, consultez Spécification des en-têtes conditionnels pour les opérations du service Blob.For more information, see Specifying Conditional Headers for Blob Service Operations.

Corps de la réponseResponse Body

Le format du corps de la réponse pour une demande qui retourne uniquement les blocs validés se présente comme suit :The format of the response body for a request that returns only committed blocks is as follows:

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

Le format du corps de la réponse pour une demande qui retourne les blocs validés et non validés se présente comme suit :The format of the response body for a request that returns both committed and uncommitted blocks is as follows:

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

Exemple de réponseSample Response

Dans l'exemple suivant, le paramètre blocklisttype a été défini à committed, afin que seuls les blocs validés de l'objet blob soient retournés dans la réponse.In the following example, the blocklisttype parameter was set to committed, so only the blob's committed blocks are returned in the response.

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>  

Dans cet exemple, le paramètre blocklisttype a été défini à all, et les blocs validés et non validés de l'objet blob sont retournés dans la réponse.In this example, the blocklisttype parameter was set to all, and both the blob's committed and uncommitted blocks are returned in the response.

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>  

Dans cet exemple, le paramètre blocklisttype a été défini à all, mais l'objet blob n'a pas encore été validé, donc l'élément CommittedBlocks est vide.In this next example, the blocklisttype parameter was set to all, but the blob has not yet been committed, so the CommittedBlocks element is empty.

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>  

AutorisationAuthorization

Si la liste de contrôle d'accès du conteneur est définie pour autoriser un accès anonyme, un client peut appeler Get Block List ; cependant, seuls les blocs validés sont accessibles publiquement.If the container's ACL is set to allow anonymous access, any client may call Get Block List; however, only committed blocks can be accessed publicly. L'accès à la liste des blocs non validés est limité au propriétaire du compte et à toute personne qui utilise une signature d'accès partagé qui dispose d'autorisations pour lire cet objet blob ou son conteneur.Access to the uncommitted block list is restricted to the account owner and to anyone using a Shared Access Signature that has permission to read this blob or its container.

RemarquesRemarks

Appelez Get Block List pour retourner la liste des blocs qui ont été validés pour un objet blob de blocs, la liste des blocs qui n'ont pas encore été validés ou les deux listes.Call Get Block List to return the list of blocks that have been committed to a block blob, the list of blocks that have not yet been committed, or both lists. Utilisez le paramètre blocklisttype pour indiquer la liste des blocs à retourner.Use the blocklisttype parameter to specify which list of blocks to return. La liste des blocs validés est retournée dans l’ordre dans lequel ils ont été validés par l’opération Put Block List .The list of committed blocks is returned in the same order that they were committed by the Put Block List operation.

Vous pouvez utiliser la liste des blocs non validés pour déterminer les blocs manquants de l'objet blob, dans le cas où des appels à Put Block ou Put Block List ont échoué.You can use the uncommitted block list to determine which blocks are missing from the blob in cases where calls to Put Block or Put Block List have failed. La liste des blocs non validés est retournée par ordre alphabétique.The list of uncommitted blocks is returned in alphabetical order. Si un ID de bloc a été téléchargé plusieurs fois, seul le bloc le plus récent s'affiche dans la liste.If a block ID has been uploaded more than once, only the most recently uploaded block appears in the list.

Notez que quand un objet blob n'a pas encore été validé, l'appel de Get Block List avec blocklisttype=all retourne les blocs non validés, et l'élément CommittedBlocks est vide.Note that when a blob has not yet been committed, calling Get Block List with blocklisttype=all returns the uncommitted blocks, and the CommittedBlocks element is empty.

Get Block Listne prend pas en charge l’accès concurrentiel lors de la lecture de la liste des blocs non validés.Get Block List does not support concurrency when reading the list of uncommitted blocks. Les appels à Get Block List where blocklisttype=uncommitted ou blocklisttype=all ont un taux de demandes maximal inférieur à celui des autres opérations de lecture.Calls to Get Block List where blocklisttype=uncommitted or blocklisttype=all have a lower maximum request rate than other read operations. Pour plus d’informations sur le débit cible pour les opérations de lecture, consultez objectifs de performance et d’extensibilité d’Azure Storage.For details on target throughput for read operations, see Azure Storage Scalability and Performance Targets.

À partir de la version 2019-12-12, un objet blob de blocs peut contenir des blocs d’une taille maximale de 4000 MiB.Starting with version 2019-12-12, a block blob may contain blocks up to 4000 MiB in size. Pour protéger les applications à l’aide d’un entier 32 bits signé pour représenter la taille de bloc, l’appel Get Block List de sur un objet blob de blocs qui contient un bloc supérieur à 100 MIB avec une version Rest antérieure à 2019-12-12 entraîne un code d’état 409 (conflit).To protect applications using a signed 32-bit integer to represent the block size, calling Get Block List on a block blob that contains a block larger than 100 MiB with a REST version before 2019-12-12 results in status code 409 (Conflict).

Get Block List s'applique uniquement aux objets blob de blocs.Get Block List applies only to block blobs. L'appel de Get Block List sur un objet blob de pages produit un code d'état 400 (Demande incorrecte).Calling Get Block List on a page blob results in status code 400 (Bad Request).

Get Block Listsur un objet blob de blocs archivé échoue.Get Block List on an archived block blob will fail.

Voir aussiSee also

Autoriser les demandes au stockage Azure Authorize requests to Azure Storage
Codes d’État et d’erreur Status and Error Codes
Codes d’erreur du service BLOB Blob Service Error Codes
Définition de délais d'expiration pour les opérations du service BLOBSetting Timeouts for Blob Service Operations