Partager via


Créer un conteneur

L’opération Create Container crée un conteneur sous le compte spécifié. Si le conteneur portant le même nom existe déjà, l’opération échoue.

La ressource de conteneur inclut les métadonnées et les propriétés de ce conteneur. Il n’inclut pas de liste des objets blob dans le conteneur.

Requête

Vous pouvez construire la Create Container requête comme indiqué ici. Nous vous recommandons d’utiliser HTTPS. Le nom de votre conteneur ne peut inclure que des caractères minuscules et doit respecter ces règles de nommage. Dans l’URL, remplacez myaccount par le nom de votre compte de stockage.

Méthode URI de la requête Version HTTP
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container HTTP/1.1

Demande de service de stockage émulé

Lorsque vous effectuez une demande sur le service de stockage émulé, spécifiez le nom d’hôte de l’émulateur et le port de stockage Blob sous la forme 127.0.0.1:10000, suivis du nom du compte de stockage émulé.

Méthode URI de la requête Version HTTP
PUT http://127.0.0.1:10000/devstoreaccount1/mycontainer?restype=container HTTP/1.1

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

Paramètres d’URI

Vous pouvez spécifier les paramètres supplémentaires suivants sur l’URI de la demande.

Paramètre Descriptif
timeout Optional. Le timeout paramètre est exprimé en secondes. Pour plus d’informations, consultez Définir des délais d’expiration pour les opérations de Stockage Blob.

En-têtes de requête

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

En-tête de requête Descriptif
Authorization Obligatoire. Spécifie le schéma d’autorisation, le nom du compte et la signature. Pour plus d’informations, consultez Autoriser les demandes à Stockage Azure.
Date ou x-ms-date Obligatoire. Spécifie l’heure UTC (temps universel coordonné) de la demande. Pour plus d’informations, consultez Autoriser les demandes à Stockage Azure.
x-ms-version Requis pour toutes les demandes autorisées. Spécifie la version de l’opération à utiliser pour cette demande. Pour plus d’informations, consultez Gestion des versions pour les services de stockage Azure.
x-ms-meta-name:value Optional. Paire nom-valeur à associer au conteneur en tant que métadonnées. Remarque : À partir de la version 2009-09-19, les noms de métadonnées doivent respecter les règles de nommage pour les identificateurs C#.
x-ms-blob-public-access Optional. Spécifie si les données du conteneur sont accessibles publiquement et le niveau d’accès. Les valeurs possibles incluent :

- container: Spécifie un accès public complet en lecture pour les données de conteneur et d’objet blob. Les clients peuvent énumérer des objets blob dans le conteneur via une requête anonyme, mais ils ne peuvent pas énumérer les conteneurs dans le compte de stockage.
- blob: Spécifie l’accès public en lecture pour les objets blob. Les données d’objet blob au sein de ce conteneur peuvent être lues via une demande anonyme, mais les données de conteneur ne sont pas disponibles. Les clients ne peuvent pas énumérer des objets blob dans le conteneur via une demande anonyme.

Si cet en-tête n’est pas inclus dans la demande, les données du conteneur sont privées pour le propriétaire du compte.
x-ms-client-request-id Optional. Fournit une valeur opaque générée par le client avec une limite de caractères de 1 kibiooctet (Kio) qui est enregistrée dans les journaux lors de la configuration de la journalisation. Nous vous recommandons vivement d’utiliser cet en-tête pour corréler les activités côté client avec les demandes que le serveur reçoit. Pour plus d’informations, consultez Surveiller le stockage Blob Azure.

En-têtes de demande (portées de chiffrement)

À partir de la version 2019-02-02, vous pouvez spécifier les en-têtes suivants sur une demande pour définir une étendue de chiffrement par défaut sur un conteneur. Si vous définissez une étendue de chiffrement, celle-ci est automatiquement utilisée pour chiffrer tous les objets blob chargés dans le conteneur.

En-tête de requête Descriptif
x-ms-default-encryption-scope Obligatoire. Étendue de chiffrement à définir par défaut sur le conteneur.
x-ms-deny-encryption-scope-override Obligatoire. Les valeurs sont true ou false. La définition de cet en-tête pour true garantir que chaque objet blob chargé dans ce conteneur utilise l’étendue de chiffrement par défaut. Lorsque cet en-tête est false, un client peut télécharger un objet blob avec une étendue de chiffrement autre que l’étendue par défaut.

Important

Si un conteneur a x-ms-deny-encryption-scope-override défini la valeur true, les mises à jour des objets blob qui n’ont pas d’étendue de chiffrement ou de clés de chiffrement fournies par le client ne sont pas autorisées dans ce conteneur. Ces objets blob restent lisibles et les utilisateurs peuvent déplacer des objets blob hors du conteneur vers un conteneur sans politique de remplacement de l’étendue de chiffrement pour effectuer les mises à jour.

Corps de la requête

Aucun.

Exemple de requête

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container HTTP/1.1  
  
Request Headers:  
x-ms-version: 2011-08-18  
x-ms-date: Sun, 25 Sep 2011 22:50:32 GMT  
x-ms-meta-Name: StorageSample  
Authorization: SharedKey myaccount:Z5043vY9MesKNh0PNtksNc9nbXSSqGHueE00JdjidOQ=  

Réponse

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

Code de statut

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

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

En-têtes de réponse

La réponse de cette opération inclut les en-têtes décrits dans le tableau suivant. 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 Descriptif
ETag L’ETag du conteneur. Si la version de la demande est 2011-08-18 ou une version ultérieure, la valeur ETag est placée entre guillemets.
Last-Modified Renvoie la date et l’heure de la dernière modification du conteneur. Le format de date suit la RFC 1123. Pour plus d’informations, consultez Représentation des valeurs de date/heure dans les en-têtes.

Toute opération qui modifie le conteneur, ses propriétés ou ses métadonnées met à jour l’heure de la dernière modification. Les opérations sur les objets blob n’affectent pas l’heure de la dernière modification du conteneur.
x-ms-request-id Identifie de manière unique la demande qui a été faite. Vous pouvez l’utiliser pour résoudre la demande. Pour plus d’informations, consultez Résoudre les problèmes liés aux opérations d’API
x-ms-version Indique la version du Stockage Blob utilisée pour exécuter la demande. Cet en-tête est renvoyé pour les demandes effectuées sur la version 2009-09-19 ou ultérieure.
Date Valeur de date/heure UTC générée par le service, qui indique l’heure à laquelle la réponse a été initiée.
x-ms-client-request-id Peut être utilisé pour résoudre les problèmes liés aux demandes et aux 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 demande, et la valeur ne contient pas plus de 1024 caractères ASCII visibles. Si l’en-tête x-ms-client-request-id n’est pas présent dans la requête, l’en-tête ne sera pas présent dans la réponse.

Corps de réponse

Aucun.

Exemple de réponse

Response status:  
HTTP/1.1 201 Created  
  
Response headers:  
Transfer-Encoding: chunked  
Date: Sun, 25 Sep 2011 23:00:12 GMT  
ETag: “0x8CB14C3E29B7E82”  
Last-Modified: Sun, 25 Sep 2011 23:00:06 GMT  
x-ms-version: 2011-08-18  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  

Authorization

L’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 Create Container comme décrit ci-dessous.

Important

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

Stockage Azure prend en charge l’utilisation de Microsoft Entra ID pour l’autorisation des requêtes aux 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 demande auprès du service Blob.

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

Permissions

Vous trouverez ci-dessous la liste de l’action RBAC nécessaire pour qu’un utilisateur, un groupe, une identité managée ou un principal de service Microsoft Entra puisse appeler l’opération Create Container , 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’objet blob.

Remarques

Les conteneurs sont créés immédiatement dans le compte de stockage. Il n’est pas possible d’imbriquer un conteneur dans un autre.

Vous pouvez éventuellement créer un conteneur par défaut ou racine pour votre compte de stockage. Le conteneur racine permet de référencer un objet blob à partir du niveau supérieur de la hiérarchie des comptes de stockage, sans référencer le nom du conteneur.

Pour ajouter le conteneur racine à votre compte de stockage, créez un conteneur nommé $root. Construisez la requête comme suit :

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/$root?restype=container HTTP/1.1  
  
Request Headers:  
x-ms-version: 2011-08-18  
x-ms-date: Sun, 25 Sep 2011 22:50:32 GMT  
x-ms-meta-Name: StorageSample  
Authorization: SharedKey myaccount:Z5043vY9MesKNh0PNtksNc9nbXSSqGHueE00JdjidOQ=  

Vous pouvez spécifier des métadonnées pour un conteneur lorsque vous le créez en incluant un ou plusieurs en-têtes de métadonnées dans la demande. Le format de l’en-tête de métadonnées est x-ms-meta-name:value.

Si un conteneur du même nom est supprimé lors Create Container de l’appel, le serveur renvoie le code d’état 409 (Conflit) et fournit des informations d’erreur supplémentaires indiquant que le conteneur est en cours de suppression.

Facturation

Les demandes de tarification peuvent provenir de clients qui utilisent des API de Stockage Blob, soit directement via l’API REST de Stockage Blob, soit à partir d’une bibliothèque cliente de Stockage Azure. Ces demandes entraînent des frais par transaction. Le type d’opération affecte la façon dont le compte est débité. Par exemple, les transactions lues sont comptabilisées dans une catégorie de facturation différente de celle des transactions d’écriture. Le tableau suivant indique la catégorie de facturation des Create Container demandes en fonction du type de compte de stockage :

Opération Type de compte de stockage Catégorie de facturation
Créer un conteneur Objet blob de blocs Premium
Usage général v2 standard
Standard v1 à usage général
Répertorier et créer des opérations de conteneur

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

Voir aussi

Autoriser les demandes à Azure Storage
Codes d’état et d’erreur
Codes d’erreur Stockage Blob
Nommer et référencer les conteneurs, les objets blob et les métadonnées
Définir et récupérer les propriétés et les métadonnées des ressources d’objet blob
Définir l’ACL du conteneur