Put Block ListPut Block List

L'opération Put Block List écrit un objet blob en spécifiant la liste des ID de bloc qui le composent.The Put Block List operation writes a blob by specifying the list of block IDs that make up the blob. Pour pouvoir être écrit dans le cadre d’un objet BLOB, un bloc doit avoir été correctement écrit sur le serveur dans une opération de bloc put précédente.In order to be written as part of a blob, a block must have been successfully written to the server in a prior Put Block operation.

Vous pouvez appeler Put Block List pour mettre à jour un objet blob en téléchargeant uniquement les blocs qui ont changé, puis en validant les blocs nouveaux et existants.You can call Put Block List to update a blob by uploading only those blocks that have changed, then committing the new and existing blocks together. Vous pouvez faire cela en spécifiant si un bloc doit être validé à partir de la liste de blocs validés ou de la liste de blocs non validés, ou si la version du bloc téléchargée en dernier doit être validée en indiquant la liste auquel le bloc appartient.You can do this by specifying whether to commit a block from the committed block list or from the uncommitted block list, or to commit the most recently uploaded version of the block, whichever list it may belong to.

RequêteRequest

La demande Put Block List peut être construite comme indiqué ci-dessous.The Put 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 la méthode PUTPUT Method Request URI Version HTTPHTTP Version
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist 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 la méthode PUTPUT Method Request URI Version HTTPHTTP Version
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=blocklist HTTP/1.1HTTP/1.1

Notez que l’émulateur de stockage prend uniquement en charge les tailles d’objet BLOB jusqu’à 2 Gio.Note that the storage emulator only supports blob sizes up to 2 GiB.

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 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ètreParameter DescriptionDescription
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.Required for all authorized 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.
Content-Length Obligatoire.Required. La longueur du contenu de la demande, en octets.The length of the request content in bytes. Notez que cet en-tête fait référence à la longueur de contenu de la liste de blocs, et non à l'objet blob lui-même.Note that this header refers to the content length of the list of blocks, not of the blob itself.
Content-MD5 facultatif.Optional. Un hachage MD5 du contenu de la demande.An MD5 hash of the request content. Ce hachage est utilisé pour vérifier l'intégrité du contenu de la demande pendant le transport.This hash is used to verify the integrity of the request content during transport. Si les deux hachages ne correspondent pas, l'opération échoue avec le code d'erreur 400 (Demande incorrecte).If the two hashes do not match, the operation will fail with error code 400 (Bad Request).

Notez que cet en-tête est associé au contenu de la demande, et non au contenu de l'objet blob lui-même.Note that this header is associated with the request content, and not with the content of the blob itself.
x-ms-content-crc64 facultatif.Optional. Hachage crc64 du contenu de la demande.An crc64 hash of the request content. Ce hachage est utilisé pour vérifier l'intégrité du contenu de la demande pendant le transport.This hash is used to verify the integrity of the request content during transport. Si les deux hachages ne correspondent pas, l'opération échoue avec le code d'erreur 400 (Demande incorrecte).If the two hashes do not match, the operation will fail with error code 400 (Bad Request).

Notez que cet en-tête est associé au contenu de la demande, et non au contenu de l'objet blob lui-même.Note that this header is associated with the request content, and not with the content of the blob itself.

Si les en-têtes Content-MD5 et x-ms-content-crc64 sont présents, la demande échoue avec un 400 (demande incorrecte).If both Content-MD5 and x-ms-content-crc64 headers are present, the request will fail with a 400 (Bad Request).

Cet en-tête est pris en charge dans versions2019-02-02 ou version ultérieure.This header is supported in versions2019-02-02 or later.
x-ms-blob-cache-control facultatif.Optional. Définit le contrôle du cache de l'objet blob.Sets the blob’s cache control. Si elle est spécifiée, cette propriété est stockée avec l'objet blob et retournée avec une demande de lecture.If specified, this property is stored with the blob and returned with a read request.

Si cette propriété n'est pas spécifiée avec la demande, elle est supprimée pour l'objet blob si la demande réussit.If this property is not specified with the request, then it is cleared for the blob if the request is successful.
x-ms-blob-content-type facultatif.Optional. Définit le type de contenu de l'objet blob.Sets the blob’s content type. Si elle est spécifiée, cette propriété est stockée avec l'objet blob et retournée avec une demande de lecture.If specified, this property is stored with the blob and returned with a read request.

Si le type de contenu n'est pas spécifié, il est défini sur le type par défaut, qui est application/octet-stream.If the content type is not specified, then it is set to the default type, which is application/octet-stream.
x-ms-blob-content-encoding facultatif.Optional. Définit l'encodage du contenu de l'objet blob.Sets the blob’s content encoding. Si elle est spécifiée, cette propriété est stockée avec l'objet blob et retournée avec une demande de lecture.If specified, this property is stored with the blob and returned with a read request.

Si cette propriété n'est pas spécifiée avec la demande, elle est supprimée pour l'objet blob si la demande réussit.If this property is not specified with the request, then it is cleared for the blob if the request is successful.
x-ms-blob-content-language facultatif.Optional. Définit la langue du contenu de l'objet blob.Set the blob’s content language. Si elle est spécifiée, cette propriété est stockée avec l'objet blob et retournée avec une demande de lecture.If specified, this property is stored with the blob and returned with a read request.

Si cette propriété n'est pas spécifiée avec la demande, elle est supprimée pour l'objet blob si la demande réussit.this property is not specified with the request, then it is cleared for the blob if the request is successful.
x-ms-blob-content-md5 facultatif.Optional. Un hachage MD5 du contenu de l'objet blob.An MD5 hash of the blob content. Notez que ce hachage n'est pas validé, car les hachages pour les blocs individuels ont été validés lors du téléchargement.Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.

L’opération d' extraction d’objets BLOB retourne la valeur de cet en-tête dans l’en-tête de réponse Content-MD5.The Get Blob operation returns the value of this header in the Content-MD5 response header.

Si cette propriété n'est pas spécifiée avec la demande, elle est supprimée pour l'objet blob si la demande réussit.If this property is not specified with the request, then it is cleared for the blob if the request is successful.
x-ms-meta-name:value facultatif.Optional. Paires nom-valeur définies par l'utilisateur associées à l'objet blob.User-defined name-value pairs associated with the blob.

Notez que depuis la version 2009-09-19, les noms de métadonnées doivent respecter les règles d’affectation de noms pour les identificateurs C#.Note that beginning with version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers.
x-ms-encryption-scope facultatif.Optional. Indique l’étendue de chiffrement à utiliser pour chiffrer l’objet BLOB.Indicates the encryption scope to use to encrypt the blob. Cela doit correspondre à la portée de chiffrement utilisée pour chiffrer tous les blocs en cours de validation.This must match the encryption scope used to encrypt all the blocks that are being committed. Cet en-tête est pris en charge dans les versions 2019-02-02 ou ultérieures.This header is supported in versions 2019-02-02 or later.
x-ms-tags facultatif.Optional. Définit les balises encodées de chaîne de requête données sur l’objet BLOB.Sets the given query-string encoded tags on the blob. Pour plus d’informations, consultez les notes.See the Remarks for additional information. Pris en charge dans la version 2019-12-12 et les versions ultérieures.Supported in version 2019-12-12 and newer.
x-ms-lease-id:<ID> Obligatoire si l'objet blob a un bail actif.Required if the blob has an active lease. Pour effectuer cette opération sur un objet blob avec un bail actif, spécifiez l'ID de bail valide pour cet en-tête.To perform this operation on a blob with an active lease, specify the valid lease ID for this header.
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.
x-ms-blob-content-disposition facultatif.Optional. Définit l'en-tête Content-Disposition de l'objet blob.Sets the blob’s Content-Disposition header. Disponible pour la version du 15/08/2013 et les versions ultérieures.Available for versions 2013-08-15 and later.

Le champ d'en-tête Content-Disposition donne des informations supplémentaires sur la manière de traiter la charge utile de réponse, et peut également être utilisé pour attacher des métadonnées supplémentaires.The Content-Disposition header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. Par exemple, s'il est défini à la valeur attachment, il indique que l'agent utilisateur ne doit pas afficher la réponse, mais une boîte de dialogue Enregistrer sous.For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog.

La réponse des opérations d' extraction d’objet BLOB et d' extraction de propriétés d’objet BLOB comprend l’en-tête Content-disposition.The response from the Get Blob and Get Blob Properties operations includes the content-disposition header.
x-ms-access-tier facultatif.Optional. Version 2018-11-09 et versions ultérieures.Version 2018-11-09 and newer. Indique le niveau à définir sur un objet BLOB.Indicates the tier to be set on a blob. Pour les objets BLOB de blocs, pris en charge sur les comptes stockage BLOB ou usage général v2 uniquement avec la version 2018-11-09 et les versions ultérieures.For block blobs, supported on blob storage or general purpose v2 accounts only with version 2018-11-09 and newer. Les valeurs valides pour les niveaux d’objet blob de blocs sont Hot / Cool / Archive .Valid values for block blob tiers are Hot/Cool/Archive. Pour plus d’informations sur la hiérarchisation des objets BLOB de blocs , consultez niveaux de stockage chaud, froid et Archive.For detailed information about block blob tiering see Hot, cool and archive storage tiers.

Cette opération prend également en charge l'utilisation d'en-têtes conditionnels pour valider la liste noire uniquement si une condition est remplie.This operation also supports the use of conditional headers to commit 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.

En-têtes de demande (clés de chiffrement fournies par le client)Request Headers (Customer-provided encryption keys)

À partir de la version 2019-02-02, les en-têtes suivants peuvent être spécifiés sur la demande pour chiffrer un objet BLOB avec une clé fournie par le client.Beginning with version 2019-02-02, the following headers may be specified on the request to encrypt a blob with a customer-provided key. Le chiffrement avec une clé fournie par le client (et le jeu d’en-têtes correspondant) est facultatif.Encryption with a customer-provided key (and the corresponding set of headers) is optional.

En-tête de requêteRequest header DescriptionDescription
x-ms-encryption-key Obligatoire.Required. Clé de chiffrement AES-256 encodée en base64.The Base64-encoded AES-256 encryption key.
x-ms-encryption-key-sha256 Obligatoire.Required. Hachage SHA256 encodé en base64 de la clé de chiffrement.The Base64-encoded SHA256 hash of the encryption key.
x-ms-encryption-algorithm: AES256 Obligatoire.Required. Spécifie l’algorithme à utiliser pour le chiffrement.Specifies the algorithm to use for encryption. La valeur de cet en-tête doit être AES256 .The value of this header must be AES256.

Corps de la demandeRequest Body

Dans le corps de la demande, vous pouvez spécifier la liste de blocs que le service BLOB doit vérifier pour le bloc demandé.In the request body, you can specify which block list the Blob service should check for the requested block. De cette façon, vous pouvez mettre à jour un objet blob existant lors de l'insertion, du remplacement ou de la suppression de blocs individuels, plutôt que de retélécharger l'intégralité de l'objet blob.In this way you can update an existing blob by inserting, replacing, or deleting individual blocks, rather than re-uploading the entire blob. Après avoir téléchargé les blocs modifiés, vous pouvez valider une nouvelle version de l'objet BLOB en validant les nouveaux blocs en même temps que les blocs existants que vous souhaitez conserver.Once you've uploaded the block or blocks that have changed, you can commit a new version of the blob by committing the new blocks together with the existing blocks that you wish to keep.

Pour mettre à jour un objet blob, vous pouvez spécifier que le service doit rechercher un ID de bloc dans la liste de blocs validés, dans la liste de blocs non validés, ou dans la liste de blocs non validés d'abord, puis dans la liste de blocs validés.To update a blob, you can specify that the service should look for a block ID in the committed block list, in the uncommitted block list, or in the uncommitted block list first and then in the committed block list. Pour indiquer l'approche à utiliser, spécifiez l'ID de bloc dans l'élément XML approprié au sein du corps de la demande, comme suit :To indicate which approach to use, specify the block ID within the appropriate XML element within the request body, as follows:

  • Spécifiez l'ID de bloc dans l'élément Committed pour indiquer que le service BLOB doit rechercher le bloc nommé uniquement dans la liste de blocs validés.Specify the block ID within the Committed element to indicate that the Blob service should search only the committed block list for the named block. Si le bloc est introuvable dans la liste de blocs validés, il n'est pas écrit dans l'objet blob, et le service BLOB retourne le code d'état 400 (Demande incorrecte).If the block is not found in the committed block list, it will not be written as part of the blob, and the Blob service will return status code 400 (Bad Request).

  • Spécifiez l'ID de bloc dans l'élément Uncommitted pour indiquer que le service BLOB doit rechercher le bloc nommé uniquement dans la liste de blocs non validés.Specify the block ID within the Uncommitted element to indicate that the Blob service should search only the uncommitted block list for the named block. Si le bloc est introuvable dans la liste de blocs non validés, il n'est pas écrit dans l'objet blob, et le service BLOB retourne le code d'état 400 (Demande incorrecte).If the block is not found in the uncommitted block list, it will not be written as part of the blob, and the Blob service will return status code 400 (Bad Request).

  • Spécifiez l'ID de bloc dans l'élément Latest pour indiquer que le service BLOB doit en premier rechercher le bloc nommé dans la liste de blocs non validés.Specify the block ID within the Latest element to indicate that the Blob service should first search the uncommitted block list. Si le bloc se trouve dans la liste de blocs non validés, cette version du bloc est la plus récente et doit être écrite dans l'objet blob.If the block is found in the uncommitted list, that version of the block is the latest and should be written to the blob. Si le bloc est introuvable dans la liste de blocs non validés, le service doit rechercher le bloc nommé dans la liste de blocs validés et écrire ce bloc dans l'objet blob s'il le trouve.If the block is not found in the uncommitted list, then the service should search the committed block list for the named block and write that block to the blob if it is found.

Le corps de la demande pour cette version de Put Block List utilise le format XML suivant :The request body for this version of Put Block List uses following XML format:

<?xml version="1.0" encoding="utf-8"?>  
<BlockList>  
  <Committed>first-base64-encoded-block-id</Committed>  
  <Uncommitted>second-base64-encoded-block-id</Uncommitted>  
  <Latest>third-base64-encoded-block-id</Latest>  
  ...  
</BlockList>  
  

Exemple de demandeSample Request

Pour illustrer Put Block List, supposez que vous avez téléchargé trois blocs que vous voulez valider.To demonstrate Put Block List, assume you have uploaded three blocks that you now wish to commit. L'exemple suivant valide un nouvel objet blob en indiquant que la version la plus récente de chaque bloc indiqué doit être utilisée.The following example commits a new blob by indicating that the latest version of each block listed should be used. Il n'est pas nécessaire de savoir si ces blocs ont déjà été validés.It's not necessary to know whether these blocks have already been committed.

  
Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist HTTP/1.1  
  
Request Headers:  
x-ms-date: Wed, 31 Aug 2011 00:17:43 GMT  
x-ms-version: 2011-08-18  
Content-Type: text/plain; charset=UTF-8  
Authorization: SharedKey myaccount:DJ5QZSVONZ64vAhnN/wxcU+Pt5HQSLAiLITlAU76Lx8=  
Content-Length: 133  
  
Request Body:  
<?xml version="1.0" encoding="utf-8"?>  
<BlockList>  
  <Latest>AAAAAA==</Latest>  
  <Latest>AQAAAA==</Latest>  
  <Latest>AZAAAA==</Latest>  
</BlockList>  
  

Ensuite, supposez que vous voulez mettre à jour l'objet blob.Next, assume that you wish to update the blob. Ce nouvel objet blob contiendra les modifications suivantes :The new blob will have the following changes:

  • Un nouveau bloc avec l'ID ANAAAA==.A new block with ID ANAAAA==. Ce bloc doit d’abord être téléchargé avec un appel au bloc put et s’afficher dans la liste de blocs non validés jusqu’à l’appel à Put Block List .This block must first be uploaded with a call to Put Block and will appear in the uncommitted block list until the call to Put Block List.

  • Une version mise à jour du bloc avec l'ID AZAAAA==.An updated version of the block with ID AZAAAA==. Ce bloc doit d’abord être téléchargé avec un appel au bloc put et s’afficher dans la liste de blocs non validés jusqu’à l’appel à Put Block List .This block must first be uploaded with a call to Put Block and will appear in the uncommitted block list until the call to Put Block List.

  • Suppression du bloc avec l'ID AAAAAA==.Removal of the block with the ID AAAAAA==. Étant donné que ce bloc n'est pas inclus dans l'appel suivant à Put Block List, le bloc sera supprimé de l'objet blob.Given that this block is not included in the next call to Put Block List, the block will effectively be removed from the blob.

L'exemple suivant montre l'appel à Put Block List qui met à jour l'objet blob :The following example shows the call to Put Block List that updates the blob:

  
Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist HTTP/1.1  
  
Request Headers:  
x-ms-date: Wed, 31 Aug 2009 00:17:43 GMT  
x-ms-version: 2011-08-18  
Content-Type: text/plain; charset=UTF-8  
Authorization: SharedKey myaccount:DJ5QZSVONZ64vAhnN/wxcU+Pt5HQSLAiLITlAU76Lx8=  
Content-Length: 133  
  
Request Body:  
<?xml version="1.0" encoding="utf-8"?>  
<BlockList>  
  <Uncommitted>ANAAAA==</Uncommitted>  
  <Committed>AQAAAA==</Committed>  
  <Uncommitted>AZAAAA==</Uncommitted>  
</BlockList>  
  

responseResponse

La réponse inclut un code d'état HTTP et un ensemble d'en-têtes de réponse.The response includes an HTTP status code and a set of response headers.

Code d’étatStatus Code

Une opération réussie renvoie le code d'état 201 (Créé).A successful operation returns status code 201 (Created).

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.

responseResponse DescriptionsDescriptions
ETag La balise d'entité contient une valeur que le client peut utiliser pour effectuer des opérations GET/PUT conditionnelles en utilisant l'en-tête de demande If-Match.The entity tag contains a value that the client can use to perform conditional GET/PUT operations by using the If-Match request header. Si la version de la demande est 18/08/2011 ou plus récente, la valeur de l'ETag sera entre guillemets.If the request version is 2011-08-18 or newer, the ETag value will be in quotes.
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.For more information, see Representation of Date-Time Values in Headers.

Toute opération qui modifie l'objet blob, notamment une mise à jour des métadonnées ou des propriétés de l'objet blob, modifie l'heure de la dernière modification de l'objet blob.Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last modified time of the blob.
Content-MD5 Cet en-tête est renvoyé afin que le client puisse vérifier l'intégrité du contenu du message.This header is returned so that the client can check for message content integrity. Cet en-tête fait référence au contenu de la demande, ce qui signifie dans ce cas, la liste de blocs, et non le contenu de l'objet blob lui-même.This header refers to the content of the request, meaning, in this case, the list of blocks, and not the content of the blob itself. Pour versions2019-02-02 ou version ultérieure, cet en-tête est retourné uniquement lorsque la requête a cet en-tête.For versions2019-02-02 or later, This header is only returned when the request has this header.
x-ms-content-crc64 Pour les versions 2019-02-02 et ultérieures, cet en-tête est retourné afin que le client puisse vérifier l’intégrité du contenu du message.For versions 2019-02-02 and later, this header is returned so that the client can check for message content integrity. Cet en-tête fait référence au contenu de la demande, ce qui signifie dans ce cas, la liste de blocs, et non le contenu de l'objet blob lui-même.This header refers to the content of the request, meaning, in this case, the list of blocks, and not the content of the blob itself.

Cet en-tête est retourné lorsque Content-md5 l’en-tête n’est pas présent dans la demande.This header is returned when Content-md5 header is not present in the request.
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.
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-request-server-encrypted: true/false Version 2015-12-11 ou ultérieure.Version 2015-12-11 or newer. La valeur de cet en-tête est définie sur true si le contenu de la demande est correctement chiffré à l’aide de l’algorithme spécifié et dans le false cas contraire.The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise.
x-ms-encryption-key-sha256 Version 2019-02-02 ou ultérieure.Version 2019-02-02 or newer. Cet en-tête est retourné si la demande utilise une clé fournie par le client pour le chiffrement, afin que le client puisse s’assurer que le contenu de la demande est correctement chiffré à l’aide de la clé fournie.This header is returned if the request used a customer-provided key for encryption, so the client can ensure the contents of the request are successfully encrypted using the provided key.
x-ms-encryption-scope Version 2019-02-02 ou ultérieure.Version 2019-02-02 or newer. Cet en-tête est retourné si la demande a utilisé une étendue de chiffrement, afin que le client puisse s’assurer que le contenu de la demande est correctement chiffré à l’aide de l’étendue de chiffrement.This header is returned if the request used an encryption scope, so the client can ensure the contents of the request are successfully encrypted using the encryption scope.
x-ms-version-id: <DateTime> Version 2019-12-12 et versions ultérieures.Version 2019-12-12 and newer. Cet en-tête retourne une DateTime valeur opaque qui identifie de façon unique l’objet BLOB.This header returns an opaque DateTime value that uniquely identifies the blob. La valeur de cet en-tête indique la version de l’objet BLOB et peut être utilisée dans les demandes suivantes pour accéder à l’objet BLOB.The value of this header indicates the version of the blob, and may be used in subsequent requests to access the blob.
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.

Exemple de réponseSample Response

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Transfer-Encoding: chunked  
x-ms-content-crc64: 77uWZTolTHU  
Date: Sun, 25 Sep 2011 00:17:44 GMT  
ETag: “0x8CB172A360EC34B”  
Last-Modified: Sun, 25 Sep 2011 00:17:43 GMT  
x-ms-version: 2011-08-18  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  
x-ms-version-id: <DateTime>  

AutorisationAuthorization

Cette opération peut être appelée par le propriétaire du compte ou par toute personne avec une signature d'accès partagé qui dispose des autorisations pour écrire dans cet objet blob ou son conteneur.This operation can be called by the account owner and by anyone with a Shared Access Signature that has permission to write to this blob or its container.

Si une demande spécifie des balises avec l' x-ms-tags en-tête de demande, l’appelant doit respecter les exigences d’autorisation de l’opération définir les balises d’objet BLOB .If a request specifies tags with the x-ms-tags request header, the caller must meet the authorization requirements of the Set Blob Tags operation.

RemarquesRemarks

L'opération Put Block List définit l'ordre dans lequel les blocs doivent être combinés pour créer un objet blob.The Put Block List operation enforces the order in which blocks are to be combined to create a blob.

Le même ID de bloc peut être spécifié plusieurs fois dans la liste de blocs.The same block ID can be specified more than one time in the list of blocks. Si un ID de bloc est spécifié plusieurs fois, il représentera la plage d'octets dans chacun de ces emplacements dans la liste de blocs pour l'objet blob final validé.If a block ID is specified more than one time, it will represent the range of bytes in each of those locations in the block list for the final committed blob. Si un ID de bloc s'affiche plusieurs fois dans la liste, les deux instances de l'ID de bloc doivent être spécifiées dans la même liste de blocs.If a block ID appears more than once in the list, both instances of the block ID must be specified within the same block list. En d'autres termes, les deux instances doivent être spécifiées dans l'élément Committed, l'élément Uncommitted, ou l'élément Latest.In other words, both instances must be specified within the Committed element, the Uncommitted element, or the Latest element.

Avec Put Block List, vous pouvez modifier un objet blob existant lors de l'insertion, de la mise à jour, ou de la suppression de blocs individuels, sans télécharger l'objet blob en entier.With Put Block List, you can modify an existing blob by inserting, updating, or deleting individual blocks, without uploading the whole blob again. Vous pouvez spécifier des ID de bloc de la liste de blocs validés et de la liste de blocs non validés pour créer un nouvel objet blob ou pour mettre à jour le contenu d'un objet blob existant.You can specify block IDs from both the current committed block list and the uncommitted block list to create a new blob or update the content of an existing blob. De cette façon, vous pouvez mettre à jour un objet blob en spécifiant de nouveaux blocs de la liste de blocs non validés, et le reste à partir de la liste de blocs validés, qui font déjà partie de l'objet blob existant.In this way you can update a blob by specifying a few new blocks from the uncommitted block list, and the rest from the committed block list, which are already part of the existing blob.

Si un ID de blocs est spécifié dans l'élément Latest, et que le même ID de bloc existe dans la liste de blocs validés et dans la liste de blocs non validés, Put Block List valide le bloc de la liste de blocs non validés.If a block ID is specified in the Latest element, and the same block ID exists in both the committed and uncommitted block lists, Put Block List commits the block from the uncommitted block list. Si l'ID de bloc existe dans la liste de blocs validés mais pas dans la liste de blocs non validés, alors Put Block List valide le bloc de la liste de blocs non validés.If the block ID exists in the committed block list but not in the uncommitted block list, then Put Block List commits the block from the committed block list.

Chaque bloc peut avoir une taille différente, jusqu’à un maximum de 4000 MiB pour les versions 2019-12-12 et ultérieures (version préliminaire), 100 MiB pour la version 2016-05-31 et ultérieure et 4 MiB pour les versions antérieures.Each block can be a different size, up to a maximum of 4000 MiB for version 2019-12-12 and later (Preview), 100 MiB for version 2016-05-31 and later, and 4 MiB for older versions. La taille maximale d’un objet blob de blocs est donc de 190,7 tio (4000 MiB X 50 000 blocs) pour les versions 2019-12-12 et ultérieures (version préliminaire), 4,75 tio (100 les blocs MiB X 50 000) pour la version 2016-05-31 et ultérieure, et 195 Gio (4 blocs MiB X 50 000) pour toutes les anciennes versions.The maximum size of a block blob is therefore 190.7 TiB (4000 MiB X 50,000 blocks) for version 2019-12-12 and later (Preview), 4.75 TiB (100 MiB X 50,000 blocks) for version 2016-05-31 and later, and 195 GiB (4 MiB X 50,000 blocks) for all older versions. Si vous tentez de valider plus de 50 000 blocs, le service retourne le code d’état 400 (liste rouge trop longue).If you attempt to commit more than 50,000 blocks, the service returns status code 400 (Block List Too Long). Le service retourne également des informations supplémentaires sur l'erreur dans la réponse, notamment le nombre maximal de blocs autorisés.The service also returns additional information about the error in the response, including the maximum number of blocks permitted.

Le nombre maximal de blocs non validés qui peuvent être associés à un objet blob est de 100 000.The maximum number of uncommitted blocks that may be associated with a blob is 100,000.

Lorsque vous appelez Put Block List pour mettre à jour un objet blob existant, les propriétés et les métadonnées existantes de l'objet blob sont remplacées.When you call Put Block List to update an existing blob, the blob's existing properties and metadata are overwritten. Toutefois, tous les instantanés existants sont conservés avec l'objet blob.However, any existing snapshots are retained with the blob. Vous pouvez utiliser les en-têtes de demande conditionnels pour exécuter cette opération uniquement si une condition donnée est remplie.You can use the conditional request headers to perform the operation only if a specified condition is met.

Si l'opération Put Block List échoue en raison d'un bloc manquant, vous devez télécharger le bloc manquant.If the Put Block List operation fails due to a missing block, you will need to upload the missing block.

Tous les blocs non validés seront récupérés par le garbage collector s'il n'existe aucun appel réussi à Put Block ou à Put Block List sur l'objet blob dans la semaine qui suit la dernière opération Put Block réussie.Any uncommitted blocks will be garbage collected if there are no successful calls to Put Block or Put Block List on the blob within a week following the last successful Put Block operation. Si l' objet BLOB put est appelé sur l’objet BLOB, tous les blocs non validés seront récupérés par le garbage collector.If Put Blob is called on the blob, any uncommitted blocks will be garbage collected.

Si des balises sont fournies dans l' x-ms-tags en-tête, elles doivent être codées en chaîne de requête.If tags are provided in the x-ms-tags header, they must be query-string encoded. Les clés et valeurs de balise doivent respecter les exigences de nommage et de longueur comme spécifié dans définir des balises d’objet BLOB.Tag keys and values must conform to the naming and length requirements as specified in Set Blob Tags. En outre, l' x-ms-tags en-tête peut contenir jusqu’à 2 Ko de balises.Further, the x-ms-tags header may contain up to 2kb of tags. Si davantage de balises sont requises, utilisez l’opération définir les balises d’objet BLOB .If more tags are required, use the Set Blob Tags operation.

Si l'objet blob a un bail actif, le client doit spécifier un ID de bail valide dans la demande afin de valider la liste de blocs.If the blob has an active lease, the client must specify a valid lease ID on the request in order to commit the block list. Si le client ne spécifie pas un ID de bail ou spécifie un ID de bail incorrect, le service BLOB retourne le code d'état 412 (Échec de la précondition).If the client does not specify a lease ID, or specifies an invalid lease ID, the Blob service returns status code 412 (Precondition Failed). Si le client spécifie un ID de bail, mais que l'objet blob n'a pas de bail actif, le service BLOB retourne également le code d'état 412 (Échec de la précondition).If the client specifies a lease ID but the blob does not have an active lease, the Blob service also returns status code 412 (Precondition Failed). Si le client spécifie un ID de bail sur un objet blob qui n'existe pas encore, le service BLOB retourne le code d'état 412 (Échec de la précondition) pour les requêtes effectuées avec la version du 15/08/2013 et les versions ultérieures ; pour les versions antérieures, le service BLOB retourne le code d'état 201 (Créé).If the client specifies a lease ID on a blob that does not yet exist, the Blob service will return status code 412 (Precondition Failed) for requests made against version 2013-08-15 and later; for prior versions the Blob service will return status code 201 (Created).

Si l'objet blob a un bail actif et que vous appelez Put Block List pour mettre à jour l'objet blob, le bail est conservé dans l'objet blob mis à jour.If the blob has an active lease and you call Put Block List to update the blob, the lease is maintained on the updated blob.

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

Le remplacement d’un objet BLOB archivé échoue et le remplacement d’un hot / cool objet BLOB hérite du niveau de l’ancien objet blob Si l’en-tête x-MS-Access-Tier n’est pas fourni.Overwriting an archived blob will fail and overwriting a hot/cool blob will inherit the tier from the old blob if x-ms-access-tier header is not provided.

Voir aussiSee Also

Comprendre les objets BLOB de blocs, les objets BLOB d’ajout et les objets BLOB de pages Understanding Block Blobs, Append Blobs, and Page Blobs
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