Exporter (0) Imprimer
Développer tout

Put Blob

Mis à jour: janvier 2014

L'opération Put Blob crée un nouvel objet blob de blocs ou de pages, ou met à jour le contenu d'un objet blob de blocs existant.

La mise à jour d'un objet blob de blocs existant remplace toutes les métadonnées existantes de l'objet blob. Les mises à jour partielles ne sont pas prises en charge par Put Blob; le contenu de l'objet blob existant est remplacé par le contenu du nouvel objet blob. Pour effectuer une mise à jour partielle du contenu d'un objet blob de blocs, utilisez l'opération Put Block List.

Notez que l'appel à Put Blob pour créer un objet blob de pages initialise uniquement l'objet blob. Pour ajouter du contenu à un objet blob de pages, appelez l'opération Put Page.

La demande Put Blob peut être construite comme indiqué ci-dessous. HTTPS est recommandé. Remplacez moncompte par le nom de votre compte de stockage :

 

  URI de demande de la méthode PUT Version HTTP

https://myaccount.blob.core.windows.net/mycontainer/myblob

HTTP/1.1

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

 

  URI de demande de la méthode PUT Version HTTP

http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob

HTTP/1.1

Notez que l'émulateur de stockage prend en charge uniquement des objets blob d'une taille inférieure à 2 Go.

Pour plus d'informations, consultez Utilisation de l'émulateur de stockage Azure pour le développement et le test.

Les paramètres supplémentaires suivants peuvent être spécifiés dans l'URI de la demande.

 

Parameter Description

timeout

Ce paramètre est facultatif. Le paramètre timeout est exprimé en secondes. Pour plus d'informations, consultez Définition de délais d'expiration pour les opérations du service BLOB.

Le tableau suivant décrit les en-têtes de demande obligatoires et facultatifs pour les opérations sur des objets blob de blocs et les objets blob de pages.

 

En-tête de demande Description

Authorization

Obligatoire. Spécifie le schéma d'authentification, le nom du compte et la signature. Pour plus d'informations, consultez Authentification pour les services de stockage Azure.

Date - ou - x-ms-date

Obligatoire. Spécifie le temps universel coordonné (UTC) pour la demande. Pour plus d'informations, consultez Authentification pour les services de stockage Azure.

x-ms-version

Obligatoire pour toutes les demandes authentifiées. Spécifie la version de l'opération à utiliser pour cette demande. Pour plus d'informations, consultez Contrôle de version pour les services de stockage Azure.

Content-Length

Obligatoire. La longueur de la demande.

Pour un objet blob de pages, la valeur de cet en-tête doit être définie à zéro, car Put Blob est utilisé pour initialiser uniquement l'objet blob de pages. La taille de l'objet blob de pages est spécifiée dans l'en-tête x-ms-blob-content-length. Tout le contenu doit être écrit dans un objet blob de pages en appelant Put Page.

Content-Type

Ce paramètre est facultatif. Le type de contenu MIME de l'objet blob. Le type par défaut est application/octet-stream.

Content-Encoding

Ce paramètre est facultatif. Spécifie les codages de contenu qui ont été appliqués à l'objet blob. Cette valeur est retournée au client lorsque l'opération Get Blob est effectuée sur la ressource de l'objet blob. Le client peut utiliser cette valeur quand elle est retournée pour décoder le contenu de l'objet blob.

Content-Language

Ce paramètre est facultatif. Spécifie les langages naturels utilisés par cette ressource.

Content-MD5

Ce paramètre est facultatif. Un hachage MD5 du contenu de l'objet blob. Ce hachage est utilisé pour vérifier l'intégrité de l'objet blob pendant le transport. Lorsque cet en-tête est spécifié, le service de stockage compare le hachage qui est arrivé avec celui qui a été envoyé. Si les deux hachages ne correspondent pas, l'opération échoue avec le code d'erreur 400 (Demande incorrecte).

Quand il est omis à partir de la version du 12/02/2012, le service BLOB génère un hachage MD5.

Les résultats fournis par Get Blob, Get Blob Properties et List Blobs comprennent le hachage MD5.

Cache-Control

Ce paramètre est facultatif. Le service BLOB stocke cette valeur mais ne l'utilise pas ou ne la modifie pas.

x-ms-blob-content-type

Ce paramètre est facultatif. Définit le type de contenu de l'objet blob.

x-ms-blob-content-encoding

Ce paramètre est facultatif. Définit l'encodage du contenu de l'objet blob.

x-ms-blob-content-language

Ce paramètre est facultatif. Définit la langue du contenu de l'objet blob.

x-ms-blob-content-md5

Ce paramètre est facultatif. Définit le hachage MD5 de l'objet blob.

x-ms-blob-cache-control

Ce paramètre est facultatif. Définit le contrôle du cache de l'objet blob.

x-ms-blob-type:<BlockBlob | PageBlob>

Obligatoire. Spécifie le type d'objet blob à créer : objet blob de blocs ou objet blob de pages.

x-ms-meta-name:value

Ce paramètre est facultatif. Paires nom-valeur associées à l'objet blob en tant que métadonnées.

Depuis la version du 19/09/2009, les noms de métadonnées doivent respecter les règles d'attribution de noms pour les identificateurs C#.

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-blob-content-disposition

Ce paramètre est facultatif. Définit l'en-tête Content-Disposition de l'objet blob. Disponible pour la version du 15/08/2013 et les versions ultérieures.

Le champ d'en-tête de réponse 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. Afficher par exemple, s'il a la valeur attachment, il indique que l'agent utilisateur ne doit pas afficher la réponse, mais une boîte de dialogue Enregistrer sous avec un nom de fichier différent du nom d'objet blob spécifié.

La réponse des opérations Get Blob et Get Blob Properties inclut l'en-tête content-disposition.

Origin

Ce paramètre est facultatif. Spécifie l'origine à partir de laquelle la demande est émise. La présence de cet en-tête entraîne des en-têtes de partage de ressources cross-origine dans la réponse. Pour plus d'informations, consultez Prise en charge du service Partage des ressources cross-origine (CORS) pour les services de stockage Azure.

x-ms-client-request-id

Ce paramètre est facultatif. Fournit une valeur opaque générée par le client avec une limite de caractère de 1 Ko qui est enregistrée dans les journaux d'analyse quand la journalisation de l'analyse de stockage est activée. L'utilisation de cet en-tête est recommandée pour la corrélation des activités côté client avec les requêtes reçues par le serveur. Pour plus d'informations, consultez À propos de la journalisation Storage Analytics et Journalisation du stockage Windows Azure : utilisation des journaux pour suivre les demandes de stockage.

Cette opération prend également en charge l'utilisation d'en-têtes conditionnels pour écrire l'objet blob uniquement si une condition est remplie. Pour plus d'informations, consultez Spécification des en-têtes conditionnels pour les opérations du service BLOB.

Le tableau suivant décrit les en-têtes de demande applicables uniquement pour les opérations sur des objets blob de pages.

 

En-tête de demande Description

x-ms-blob-content-length: bytes

Obligatoire pour les objets blob de pages. Cet en-tête spécifie la taille maximale de l'objet blob de pages, jusqu'à 1 To. La taille de l'objet blob de pages doit être alignée à une limite de 512 octets.

Si cet en-tête est spécifié pour un objet blob de blocs, le service BLOB retourne le code d'état 400 (Demande incorrecte).

x-ms-blob-sequence-number: <num>

Ce paramètre est facultatif. Défini uniquement pour les objets blob de pages. Le numéro de séquence est une valeur contrôlée par l'utilisateur que vous pouvez utiliser pour suivre les demandes. La valeur du numéro de séquence doit être comprise entre 0 et 2^63 - 1. La valeur par défaut 0.

Pour un objet blob de blocs, le corps de la demande contient le contenu de l'objet blob.

Pour un objet blob de pages, le corps de la demande est vide.

L'exemple suivant illustre une demande de création d'un objet blob de blocs :

Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer/myblockblob HTTP/1.1

Request Headers:
x-ms-version: 2013-08-15
x-ms-date: Wed, 23 Oct 2013 22:33:355 GMT
Content-Type: text/plain; charset=UTF-8
x-ms-blob-content-disposition: attachment; filename="fname.ext"
x-ms-blob-type: BlockBlob
x-ms-meta-m1: v1
x-ms-meta-m2: v2
Authorization: SharedKey myaccount:YhuFJjN4fAR8/AmBrqBz7MG2uFinQ4rkh4dscbj598g=
Content-Length: 11

Request Body:
hello world

Cet exemple de demande crée un objet blob de pages et spécifie une taille maximale de 1 024 octets. Notez que vous devez appeler Put Page pour ajouter du contenu à un objet blob de pages :

Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer/mypageblob HTTP/1.1

Request Headers:
x-ms-version: 2013-08-15
x-ms-date: Wed, 23 Oct 2013 22:41:55 GMT
Content-Type: text/plain; charset=UTF-8
x-ms-blob-type: PageBlob
x-ms-blob-content-length: 1024
x-ms-blob-sequence-number: 0
Authorization: SharedKey 
Origin: http://contoso.com
Vary: Origin
myaccount:YhuFJjN4fAR8/AmBrqBz7MG2uFinQ4rkh4dscbj598g=
Content-Length: 0

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

Une opération ayant réussi retourne le code d'état 201 (Créé).

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

La réponse de l'opération inclut les en-têtes suivants. La réponse peut également 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.

 

En-tête de réponse Description

ETag

L'ETag contient une valeur que le client peut utiliser pour effectuer des opérations PUT conditionnelles en utilisant l'en-tête de demande If-Match. Si la version de la demande est 18/08/2011 ou plus récente, la valeur de l'ETag sera entre guillemets.

Last-Modified

Date et heure de la dernière modification apportée à l'objet blob. Le format de date suit RFC 1123. Pour plus d'informations, consultez la rubrique Représentation des valeurs Date/Heure dans les en-têtes.

Toute opération d'écriture dans l'objet blob (notamment les mises à jour des métadonnées ou des propriétés de l'objet blob), modifie la heure de la dernière modification de l'objet blob.

Content-MD5

Cet en-tête est retourné pour un objet blob de blocs afin que le client puisse vérifier l'intégrité du contenu du message. La valeur Content-MD5 retournée est calculée par le service BLOB. À partir de la version du 12/02/2012, cet en-tête est retourné même si la demande n'inclut pas d'en-têtes Content-MD5 ou x-ms-blob-content-md5.

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. Pour plus d'informations, consultez Dépannage des opérations de l'API.

x-ms-version

Indique la version du service BLOB utilisée pour exécuter la demande. Cet en-tête est retourné pour les demandes effectuées avec la version du 19.09.09 ou ultérieure.

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.

Access-Control-Allow-Origin

Retourné si la demande inclut un en-tête Origin et le partage de ressources cross-origine (CORS) est activé avec une règle de correspondance. Cet en-tête retourne la valeur de l'en-tête de demande d'origine en cas de correspondance.

Access-Control-Expose-Headers

Retourné si la demande inclut un en-tête Origin et le partage de ressources cross-origine (CORS) est activé avec une règle de correspondance. Retourne la liste des en-têtes de réponse qui doivent être exposés au client ou à l'émetteur de la demande.

Access-Control-Allow-Credentials

Retourné si la demande inclut un en-tête Origin et le partage de ressources cross-origine (CORS) est activé avec une règle de correspondance qui n'autorise pas toutes les origines. Cet en-tête doit avoir la valeur True.

Response Status:
HTTP/1.1 201 Created

Response Headers:
Transfer-Encoding: chunked
Content-MD5: sQqNsWTgdUEFt6mb5y4/5Q==
Date: Wed, 23 Oct 2013 22:33:35 GMT
ETag: "0x8CB171BA9E94B0B"
Last-Modified: Wed, 23 Oct 2013 22:30:15 GMT
Access-Control-Allow-Origin: http://contoso.com
Access-Control-Expose-Headers: Content-MD5
Access-Control-Allow-Credentials: True
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0

Cette opération peut être appelée par le propriétaire du compte ou par un client avec une signature d'accès partagé qui dispose des autorisations nécessaires pour écrire dans cet objet blob ou son conteneur.

Lorsque vous créez un objet blob, vous devez spécifier s'il s'agit d'un objet blob de blocs ou d'un objet blob de pages. Une fois qu'un objet blob a été créé, le type de l'objet blob ne peut pas être modifié sauf s'il est supprimé et recréé.

Pour créer un nouvel objet blob de pages, initialisez d'abord l'objet blob en appelant Put Blob et spécifiez une taille maximale de 1 To. Lors de la création d'un objet blob de pages, n'incluez pas de contenu dans le corps de demande. Une fois l'objet blob créé, appelez Put Page pour ajouter du contenu à l'objet blob ou pour le modifier.

La taille de téléchargement maximale pour un objet blob de blocs est de 64 Mo. Si la taille de votre objet blob dépasse 64 Mo, vous devez le télécharger en tant qu'ensemble de blocs. Pour plus d'informations, reportez-vous aux opérations Put Block et Put Block List. Il n'est pas nécessaire d'appeler Put Blob si vous téléchargez l'objet blob en tant qu'ensemble de blocs.

Si vous essayez de télécharger un objet blob de blocs plus grand que 64 Mo ou un objet blob de pages plus grand que 1 To, le service retourne le code d'état 413 (Entité de demande trop grande). Le service BLOB retourne également des informations supplémentaires sur l'erreur dans la réponse, notamment la taille d'objet blob maximale autorisée en octets.

Si vous appelez Put Blob pour remplacer un objet blob existant portant le même nom, tous les instantanés associés à l'objet blob d'origine sont conservés. Pour supprimer des instantanés associés, appelez Delete Blob d'abord, puis Put Blob pour recréer l'objet blob.

Un objet blob a des propriétés personnalisées (définies via les en-têtes) que vous pouvez utiliser pour stocker des valeurs associées aux en-têtes HTTP standard. Ces valeurs peuvent ensuite être lues en appelant Get Blob Properties, ou être modifiées en appelant Set Blob Properties. Les en-têtes de propriété personnalisés et l'en-tête HTTP standard correspondant sont répertoriés dans le tableau suivant :

 

En-tête HTTP En-tête de propriété personnalisé d'objet blob

Content-Type

x-ms-blob-content-type

Content-Encoding

x-ms-blob-content-encoding

Content-Language

x-ms-blob-content-language

Content-MD5

x-ms-blob-content-md5

Cache-Control

x-ms-blob-cache-control

La sémantique pour définir des valeurs de propriétés persistantes avec l'objet blob est la suivante :

  • Si le client spécifie un en-tête de propriété personnalisé, comme indiqué par le préfixe x-ms-blob, cette valeur est stockée avec l'objet blob.

  • Si le client spécifie un en-tête HTTP standard, mais pas l'en-tête de propriété personnalisé, la valeur est stockée dans la propriété personnalisée correspondante associée à l'objet blob, et est retournée par un appel à Get Blob Properties. Par exemple, si le client définit l'en-tête Content-Type dans la demande, cette valeur est stockée dans la propriété x-ms-blob-content-type de l'objet blob.

  • Si le client définit l'en-tête HTTP standard et l'en-tête de propriété correspondant dans la même demande, la demande PUT utilise la valeur fournie pour l'en-tête HTTP standard, mais la valeur spécifiée pour l'en-tête de propriété personnalisé est persistante avec l'objet blob et retournée par des demandes GET suivantes.

Si l'objet blob a un bail actif, le client doit spécifier un ID de bail valide dans la demande afin de remplacer l'objet blob. 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). 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). 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éé).

Si un objet blob existant avec un bail actif est remplacé par une opération Put Blob, le bail persiste dans l'objet blob mis à jour, jusqu'à ce qu'il expire ou soit libéré.

Une opération Put Blob dispose de 10 minutes par Mo pour se terminer. Si l'opération prend plus de 10 minutes par mégaoctet en moyenne, l'opération dépassera le délai d'expiration.

Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft