Partager via


Put Block List

L'opération Put Block List écrit un objet blob en spécifiant la liste des ID de bloc qui le composent. Pour être écrit dans le cadre d’un objet blob, un bloc doit avoir été écrit avec succès sur le serveur lors d’une opération Put Block antérieure.

Vous pouvez appeler Put Block List pour mettre à jour un objet blob en chargeant uniquement les blocs qui ont changé, puis en validant ensemble les blocs nouveaux et existants. Pour ce faire, spécifiez s’il faut valider un bloc à partir de la liste de blocs validée ou de la liste de blocs non validée, ou pour valider la dernière version chargée du bloc, quelle que soit la liste à laquelle il appartient.

Requête

Vous pouvez construire la Put Block List requête comme suit. Nous vous recommandons d’utiliser HTTPS. Remplacez moncompte par le nom de votre compte de stockage :

URI de demande de méthode PUT Version HTTP
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist HTTP/1.1

Demande de service de stockage émulée

Lorsque vous effectuez une requête auprès du service de stockage émulé, spécifiez le nom d’hôte de l’émulateur et le port du service Blob comme 127.0.0.1:10000, suivi du nom du compte de stockage émulé :

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

L’émulateur de stockage prend en charge des tailles d’objet blob allant jusqu’à 2 gibibytes (Gio) uniquement.

Pour plus d’informations, consultez Utiliser l’émulateur Azurite à des fins de développement local pour Stockage Azure.

Paramètres URI

Vous pouvez spécifier les paramètres supplémentaires suivants dans l’URI de requête :

Paramètre Description
timeout facultatif. Le paramètre timeout est exprimé en secondes. Pour plus d’informations, consultez Définir des délais d’attente pour les opérations de service Blob.

En-têtes de requête

Les en-têtes de requête obligatoires et facultatifs sont décrits dans le tableau suivant :

En-tête de requête Description
Authorization Obligatoire. Spécifie le schéma d’autorisation, le nom du compte et la signature. Pour plus d’informations, consultez Autoriser les requêtes auprès du Stockage Azure.
Date ou x-ms-date Obligatoire. Spécifie la date/heure en temps universel coordonné (UTC) pour la requête. Pour plus d’informations, consultez Autoriser les requêtes auprès du Stockage Azure.
x-ms-version Obligatoire pour toutes les demandes autorisées. Spécifie la version de l'opération à utiliser pour cette demande. Pour plus d'informations, consultez la page Contrôle de version pour les services de Stockage Microsoft Azure.
Content-Length Obligatoire. Longueur du contenu de la demande, en octets. Cet en-tête fait référence à la longueur du contenu de la liste des blocs, et non à l’objet blob lui-même.
Content-MD5 facultatif. Un hachage MD5 du contenu de la demande. Ce hachage est utilisé pour vérifier l'intégrité du contenu de la demande pendant le transport. Si les deux hachages ne correspondent pas, l'opération échoue avec le code d'erreur 400 (Demande incorrecte).

Cet en-tête est associé au contenu de la requête, et non au contenu de l’objet blob lui-même.
x-ms-content-crc64 facultatif. Hachage CRC64 du contenu de la demande. Ce hachage est utilisé pour vérifier l'intégrité du contenu de la demande pendant le transport. Si les deux hachages ne correspondent pas, l'opération échoue avec le code d'erreur 400 (Demande incorrecte).

Cet en-tête est associé au contenu de la requête, et non au contenu de l’objet blob lui-même.

Si les en-têtes Content-MD5 et x-ms-content-crc64 sont présents, la demande échoue avec un 400 (requête incorrecte).

Cet en-tête est pris en charge dans la version 2019-02-02 et ultérieure.
x-ms-blob-cache-control facultatif. Définit le contrôle du cache de l'objet blob. Si cette propriété est spécifiée, elle est stockée avec l’objet blob et retournée avec une demande de lecture.

Si la propriété n’est pas spécifiée avec la demande, elle est effacée pour l’objet blob si la demande réussit.
x-ms-blob-content-type facultatif. Définit le type de contenu de l'objet blob. Si elle est spécifiée, cette propriété est stockée avec l’objet blob et retournée avec une demande de lecture.

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.
x-ms-blob-content-encoding facultatif. Définit l'encodage du contenu de l'objet blob. Si elle est spécifiée, cette propriété est stockée avec l’objet blob et retournée avec une demande de lecture.

Si la propriété n’est pas spécifiée avec la demande, elle est effacée pour l’objet blob si la demande réussit.
x-ms-blob-content-language facultatif. Définit la langue de contenu de l’objet blob. Si elle est spécifiée, cette propriété est stockée avec l’objet blob et retournée avec une demande de lecture.

Si la propriété n’est pas spécifiée avec la demande, elle est effacée pour l’objet blob si la demande réussit.
x-ms-blob-content-md5 facultatif. Un hachage MD5 du contenu de l'objet blob. Ce hachage n’est pas validé, car les hachages des blocs individuels ont été validés lorsque chacun d’eux a été chargé.

L’opération Get Blob retourne la valeur de cet en-tête dans l’en-tête de réponse Content-MD5.

Si cette propriété n’est pas spécifiée avec la demande, elle est effacée pour l’objet blob si la demande réussit.
x-ms-meta-name:value facultatif. Paires nom-valeur définies par l’utilisateur qui sont associées à l’objet blob.

À partir de la version 2009-09-19, les noms de métadonnées doivent respecter les règles de nommage des identificateurs C#.
x-ms-encryption-scope facultatif. Indique l’étendue de chiffrement à utiliser pour chiffrer l’objet blob. Cette valeur doit correspondre à l’étendue de chiffrement utilisée pour chiffrer tous les blocs en cours de validation. Cet en-tête est pris en charge dans la version 2019-02-02 et ultérieure.
x-ms-encryption-context facultatif. La valeur par défaut est « Empty ». Si la valeur est définie, les métadonnées du système d’objets blob seront définies. Longueur maximale 1024. Valide uniquement lorsque l’espace de noms hiérarchique est activé pour le compte. Cet en-tête est pris en charge dans les versions 2021-08-06 et ultérieures.
x-ms-tags facultatif. Définit les balises encodées de chaîne de requête spécifiées sur l’objet blob. Pour plus d’informations, consultez la section Remarques . Pris en charge dans les versions 2019-12-12 et ultérieures.
x-ms-lease-id:<ID> Obligatoire si l'objet blob a un bail actif. 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.
x-ms-client-request-id facultatif. Fournit une valeur opaque générée par le client avec une limite de caractères de 1 kibioctet (Kio) enregistrée dans les journaux d’analyse lorsque la journalisation d’analyse du stockage est configurée. Nous vous recommandons vivement d’utiliser cet en-tête pour mettre en corrélation les activités côté client avec les demandes reçues par le serveur.
x-ms-blob-content-disposition facultatif. Définit l'en-tête Content-Disposition de l'objet blob. Disponible pour la version 2013-08-15 et ultérieure.

Le Content-Disposition champ d’en-tête transmet des informations supplémentaires sur la façon de traiter la charge utile de réponse, et il peut être utilisé pour joindre des métadonnées supplémentaires. Par exemple, s’il est défini sur attachment, cet en-tête indique que l’agent utilisateur ne doit pas afficher la réponse, mais doit afficher une boîte de dialogue Enregistrer sous.

La réponse des opérations Get Blob et Get Blob Properties inclut l’en-tête content-disposition.
x-ms-access-tier facultatif. Version 2018-11-09 et ultérieures. Indique le niveau à définir sur un objet blob. Pour les objets blob de blocs, cet en-tête est pris en charge sur les comptes de stockage d’objets blob ou v2 à usage général uniquement avec la version 2018-11-09 et ultérieure. Les valeurs valides pour les niveaux d’objet blob de blocs sont Hot, Cool, Coldet Archive. Remarque : Cold le niveau est pris en charge pour la version 2021-12-02 et ultérieure. Pour plus d’informations sur la hiérarchisation des objets blob de blocs , consultez Niveaux de stockage chaud, froid et archive.
x-ms-immutability-policy-until-date Version 2020-06-12 et ultérieures. Spécifie la date de rétention jusqu’à définir sur l’objet blob. Il s’agit de la date jusqu’à laquelle l’objet blob peut être protégé contre la modification ou la suppression. Suit RFC1123 format.
x-ms-immutability-policy-mode Version 2020-06-12 et ultérieures. Spécifie le mode de stratégie d’immuabilité à définir sur l’objet blob. Les valeurs valides sont unlocked et locked. La unlocked valeur indique que les utilisateurs peuvent modifier la stratégie en augmentant ou en diminuant la date de rétention jusqu’à . La locked valeur indique que ces actions sont interdites.
x-ms-legal-hold Version 2020-06-12 et ultérieures. Spécifie la conservation légale à définir sur l’objet blob. Les valeurs valides sont true et false.
x-ms-expiry-option facultatif. Version 2023-08-03 et ultérieures. Spécifie l’option de date d’expiration pour la demande, consultez ExpiryOption. Cet en-tête est valide pour les comptes avec l’espace de noms hiérarchique activé.
x-ms-expiry-time facultatif. Version 2023-08-03 et ultérieures. Spécifie l’heure à laquelle l’objet blob est défini pour expirer. Le format de la date d’expiration varie en fonction de x-ms-expiry-option. Pour plus d’informations, consultez ExpiryOption. Cet en-tête est valide pour les comptes avec l’espace de noms hiérarchique activé.

Le expiryTime déjà présent sur un objet blob n’est pas effacé si la demande ne contient pas de nouvelle valeur de expiryTime

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. Pour plus d’informations, consultez Spécifier des en-têtes conditionnels pour les opérations de stockage Blob.

En-têtes de requête (clés de chiffrement fournies par le client)

À partir de la version 2019-02-02, vous pouvez spécifier les en-têtes suivants sur la demande de chiffrement d’un objet blob avec une clé fournie par le client. Le chiffrement avec une clé fournie par le client (et l’ensemble d’en-têtes correspondant) est facultatif.

En-tête de requête Description
x-ms-encryption-key Obligatoire. Clé de chiffrement AES-256 encodée en Base64.
x-ms-encryption-key-sha256 Obligatoire. Hachage SHA256 codé en Base64 de la clé de chiffrement.
x-ms-encryption-algorithm: AES256 Obligatoire. Spécifie l’algorithme à utiliser pour le chiffrement. La valeur de cet en-tête doit être définie AES256.

Corps de la demande

Dans le corps de la demande, vous pouvez spécifier la liste de blocs que le Stockage Blob doit case activée pour le bloc demandé. De cette façon, vous pouvez mettre à jour un objet blob existant en insérant, en remplaçant ou en supprimant des blocs individuels, plutôt que de recharger l’ensemble de l’objet blob. Une fois que vous avez chargé le ou les blocs qui ont été modifiés, vous pouvez valider une nouvelle version de l’objet blob en validant les nouveaux blocs avec les blocs existants que vous souhaitez conserver.

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. Pour indiquer l’approche à utiliser, spécifiez l’ID de bloc qui se trouve dans l’élément XML approprié dans le corps de la requête, comme suit :

  • Spécifiez l’ID de bloc dans l’élément Committed pour indiquer que Stockage Blob doit rechercher uniquement le bloc nommé dans la liste de blocs validée. Si le bloc est introuvable dans la liste de blocs validée, il n’est pas écrit dans le cadre de l’objet blob, et le Stockage Blob retourne status code 400 (Requête incorrecte).

  • Spécifiez l’ID de bloc dans l’élément Uncommitted pour indiquer que Stockage Blob doit rechercher uniquement le bloc nommé dans la liste de blocs non validées. Si le bloc est introuvable dans la liste des blocs non validés, il n’est pas écrit dans le cadre de l’objet blob, et le Stockage Blob retourne status code 400 (Requête incorrecte).

  • Spécifiez l’ID de bloc dans l’élément Latest pour indiquer que Stockage Blob doit d’abord rechercher dans la liste de blocs non validées. 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. Si le bloc est introuvable dans la liste non validée, le service doit rechercher le bloc nommé dans la liste de blocs validée et écrire ce bloc dans l’objet blob s’il est trouvé.

Le corps de la demande pour cette version de Put Block List utilise le format XML suivant :

<?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 requête

Pour illustrer Put Block List, supposons que vous avez chargé trois blocs que vous souhaitez maintenant valider. 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. Il n'est pas nécessaire de savoir si ces blocs ont déjà été validés.

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>  
  

Supposons ensuite que vous souhaitiez mettre à jour l’objet blob. Le nouvel objet blob présente les modifications suivantes :

  • Un nouveau bloc avec l'ID ANAAAA==. Ce bloc doit d’abord être chargé avec un appel à Put Block, et il apparaît dans la liste des blocs non validés jusqu’à l’appel à Put Block List.

  • Une version mise à jour du bloc avec l'ID AZAAAA==. Ce bloc doit d’abord être chargé avec un appel à Put Block, et il apparaît dans la liste des blocs non validés jusqu’à l’appel à Put Block List.

  • Suppression du bloc avec l'ID AAAAAA==. Étant donné que ce bloc n’est pas inclus dans l’appel suivant à Put Block List, le bloc est effectivement supprimé de l’objet blob.

L'exemple suivant montre l'appel à Put Block List qui met à jour l'objet 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  
x-ms-expiry-option: RelativeToNow
x-ms-expiry-time: 30000
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>  
  

response

La réponse inclut un code d'état HTTP et un ensemble d'en-têtes de réponse.

Code d’état

Une opération réussie renvoie le code d'état 201 (Créé).

Pour plus d’informations sur les codes status, consultez Codes d’état et d’erreur.

En-têtes de réponse

La réponse de l'opération inclut les en-têtes suivants. La réponse peut aussi inclure des en-têtes HTTP standard supplémentaires. Tous les en-têtes standard sont conformes à la spécification du protocole HTTP/1.1.

response Descriptions
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. Si la version de la demande est 2011-08-18 ou version ultérieure, la valeur ETag est placée entre guillemets.
Last-Modified Date et heure de la dernière modification apportée à l'objet blob. Le format de date est conforme à la RFC 1123. Pour plus d’informations, consultez Représenter des valeurs de date/heure dans les en-têtes.

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.
Content-MD5 Retourné afin que le client puisse case activée pour l’intégrité du contenu du message. Cet en-tête fait référence au contenu de la requête (dans ce cas, la liste des blocs et non le contenu de l’objet blob lui-même). Pour les versions 2019-02-02 et ultérieures, cet en-tête est retourné uniquement lorsque la requête contient cet en-tête.
x-ms-content-crc64 Pour les versions 2019-02-02 et ultérieures, cet en-tête est retourné afin que le client puisse case activée pour l’intégrité du contenu du message. Cet en-tête fait référence au contenu de la requête (dans ce cas, la liste des blocs et non le contenu de l’objet blob lui-même).

Cet en-tête est retourné quand l’en-tête Content-md5 n’est pas présent dans la demande.
x-ms-request-id Identifie de manière unique la demande qui a été effectuée et vous pouvez l’utiliser pour résoudre les problèmes de la demande. Pour plus d’informations, consultez Résoudre les problèmes liés aux opérations d’API.
x-ms-version Version du Stockage Blob utilisée pour exécuter la demande. Cet en-tête est retourné pour les demandes effectuées par rapport à la version 2009-09-19 et ultérieure.
Date Valeur de date/heure UTC générée par le service, qui indique quand la réponse a été lancée.
x-ms-request-server-encrypted: true/false Version 2015-12-11 et ultérieures. La valeur de cet en-tête est définie sur si le contenu de la demande est correctement chiffré à true l’aide de l’algorithme spécifié. Sinon, la valeur est false.
x-ms-encryption-key-sha256 Version 2019-02-02 et ultérieures. Cet en-tête est retourné si la demande a utilisé 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.
x-ms-encryption-scope Version 2019-02-02 et ultérieures. Cet en-tête est retourné si la demande a utilisé une étendue de chiffrement, de sorte que le client peut s’assurer que le contenu de la demande est correctement chiffré à l’aide de l’étendue de chiffrement.
x-ms-version-id: <DateTime> Version 2019-12-12 et ultérieures. Retourne une valeur opaque DateTime qui identifie de manière unique l’objet blob. La valeur de cet en-tête indique la version de l’objet blob et peut être utilisée dans les demandes suivantes d’accès à l’objet blob.
x-ms-client-request-id Peut être utilisé pour résoudre les demandes et leurs réponses correspondantes. La valeur de cet en-tête est égale à la valeur de l’en-tête x-ms-client-request-id s’il est présent dans la requête et que la valeur ne contient pas plus de 1 024 caractères ASCII visibles. Si l’en-tête x-ms-client-request-id n’est pas présent dans la demande, il n’est pas présent dans la réponse.

Exemple de réponse

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>  

Autorisation

Une autorisation est requise lors de l’appel d’une opération d’accès aux données dans Stockage Azure. Vous pouvez autoriser l’opération Put Block List comme décrit ci-dessous.

Si une requête spécifie des balises avec l’en-tête de x-ms-tags demande, l’appelant doit répondre aux exigences d’autorisation de l’opération Définir des balises blob .

Important

Microsoft recommande d’utiliser Microsoft Entra ID avec des identités managées pour autoriser les demandes à Stockage Azure. Microsoft Entra ID offre une sécurité et une facilité d’utilisation supérieures par rapport à l’autorisation de clé partagée.

Stockage Azure prend en charge l’utilisation de Microsoft Entra ID pour autoriser les demandes de données blob. Avec Microsoft Entra ID, vous pouvez utiliser le contrôle d’accès en fonction du rôle Azure (Azure RBAC) pour accorder des autorisations à un principal de sécurité. Le principal de sécurité peut être un utilisateur, un groupe, un principal de service d’application ou une identité managée Azure. Le principal de sécurité est authentifié par Microsoft Entra ID pour retourner un jeton OAuth 2.0. Le jeton peut ensuite être utilisé pour autoriser une requête auprès du service BLOB.

Pour en savoir plus sur l’autorisation à l’aide de Microsoft Entra ID, consultez Autoriser l’accès aux objets blob à l’aide de Microsoft Entra ID.

Autorisations

Vous trouverez ci-dessous l’action RBAC nécessaire pour qu’un utilisateur, un groupe, une identité managée ou un principal de service Microsoft Entra appelle l’opérationPut Block List, ainsi que le rôle RBAC Azure intégré le moins privilégié qui inclut cette action :

Pour en savoir plus sur l’attribution de rôles à l’aide d’Azure RBAC, consultez Attribuer un rôle Azure pour l’accès aux données d’objets blob.

Remarques

L'opération Put Block List définit l'ordre dans lequel les blocs doivent être combinés pour créer un objet blob.

Le même ID de bloc peut être spécifié plusieurs fois dans la liste de blocs. Si un ID de bloc est spécifié plusieurs fois, il représente la plage d’octets dans chacun de ces emplacements dans la liste de blocs pour l’objet blob validé final. 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. 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.

Avec Put Block List, vous pouvez modifier un objet blob existant en insérant, en mettant à jour ou en supprimant des blocs individuels sans avoir à charger à nouveau l’ensemble de l’objet blob. 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. De cette façon, vous pouvez mettre à jour un objet blob en spécifiant quelques nouveaux blocs de la liste de blocs non validées et le reste à partir de la liste de blocs validée, qui font déjà partie de l’objet blob existant.

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. Si l’ID de bloc existe dans la liste de blocs validée, mais pas dans la liste de blocs non validée, Put Block List valide le bloc à partir de la liste de blocs validée.

Chaque bloc d’un objet blob de blocs peut avoir une taille différente. Un objet blob de blocs peut inclure un maximum de 50 000 blocs validés. Le nombre maximal de blocs non validés qui peuvent être associés à un objet blob est de 100 000.

Le tableau suivant décrit les tailles maximales autorisées de blocs et d’objets blob, par version de service :

Version du service Taille maximale du bloc (via Put Block) Taille maximale de l’objet blob (via Put Block List) Taille maximale de l’objet blob via une opération d’écriture unique (via Put Blob)
Version 2019-12-12 et ultérieure 4 000 mebioctets (MiO) Environ 190,7 tebibytes (Tio) (4 000 Mio × 50 000 blocs) 5 000 Mio
Versions 31-05-2016 à 2019-07-07 100 Mio Environ 4,75 Tio (100 Mio × 50 000 blocs) 256 Mio
Versions antérieures au 31/05/2016 4 Mio Environ 195 Gio (4 Mio × 50 000 blocs) 64 Mio

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. Toutefois, tous les instantanés existants sont conservés avec l'objet 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.

Si l’opération Put Block List échoue en raison d’un bloc manquant, vous devez charger le bloc manquant.

Tous les blocs non validés sont collectés par le garbage s’il n’y a pas d’appels réussis vers Put Block ou Put Block List sur l’objet blob dans la semaine suivant la dernière opération réussie Put Block . Si Put Blob est appelé sur l’objet blob, tous les blocs non validés sont collectés par la mémoire.

Si les balises sont fournies dans l’en-tête x-ms-tags , elles doivent être encodées sous forme de chaîne de requête. Les clés et les valeurs de balise doivent être conformes aux exigences de nommage et de longueur, comme spécifié dans Set Blob Tags. En outre, l’en-tête x-ms-tags peut contenir des étiquettes d’une taille maximale de 2 Kio. Si d’autres balises sont requises, utilisez l’opération Définir des balises blob .

Si l’objet blob a un bail actif, le client doit spécifier un ID de bail valide sur la demande de validation de la liste de blocs. Si le client ne spécifie pas d’ID de bail ou qu’il spécifie un ID de bail non valide, Stockage Blob retourne status code 412 (Échec de la condition préalable). Si le client spécifie un ID de bail mais que l’objet blob n’a pas de bail actif, stockage Blob retourne également status code 412 (Échec de la condition préalable). Si le client spécifie un ID de bail sur un objet blob qui n’existe pas encore, Stockage Blob retourne status code 412 (Échec de la condition préalable) pour les demandes effectuées sur la version 2013-08-15 ou ultérieure. Pour les versions antérieures, Stockage Blob retourne status code 201 (Créé).

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.

Put Block List s'applique uniquement aux objets blob de blocs. L'appel de Put Block List sur un objet blob de pages produit un code d'état 400 (Demande incorrecte).

Le remplacement d’un objet blob archivé échoue et le remplacement d’un hot objet blob ou cool hérite du niveau de l’ancien blob si l’en-tête x-ms-access-tier n’est pas fourni.

Facturation

Les demandes de tarification peuvent provenir de clients qui utilisent des API Stockage Blob, soit directement via l’API REST Stockage Blob, soit à partir d’une bibliothèque cliente stockage Azure. Ces demandes cumulent des frais par transaction. Le type de transaction affecte la façon dont le compte est facturé. Par exemple, les transactions de lecture sont comptabilisées dans une catégorie de facturation différente de celle des transactions en écriture. Le tableau suivant montre la catégorie de facturation pour Put Block List les demandes en fonction du type de compte de stockage :

Opération Type de compte de stockage Catégorie de facturation
Put Block List Objet blob de blocs Premium
Usage général v2 Standard
Usage général v1 standard
Opérations d’écriture

Pour en savoir plus sur la tarification de la catégorie de facturation spécifiée, consultez Stockage Blob Azure Tarification.

Voir aussi

Comprendre les objets blob de blocs, les objets blob d’ajout et les objets blob de pages
Autoriser les demandes à Stockage Azure
Codes d’état et d’erreur
Codes d’erreur du service Blob
Définir des délais d’attente pour les opérations de service Blob