Partager via


Affectation de noms et référencement de conteneurs, d’objets blob et de métadonnées

Cette rubrique décrit le nommage et la référence aux conteneurs, aux objets blob, aux métadonnées et aux instantanés. Un compte de stockage peut contenir zéro ou plusieurs conteneurs. Un conteneur contient des propriétés, des métadonnées et zéro ou plusieurs objets blob. Si votre compte possède un espace de noms hiérarchique, un conteneur peut également contenir zéro ou plusieurs répertoires et ces répertoires peuvent contenir zéro ou plusieurs objets blob. Un objet blob est une entité unique composée de données binaires, de propriétés et de métadonnées.

Noms de ressources

L’URI permettant de référencer un conteneur ou un objet blob doit être unique. Étant donné que chaque nom de compte est unique, deux comptes peuvent avoir des conteneurs portant le même nom. Toutefois, dans un compte de stockage donné, chaque conteneur doit avoir un nom unique. Chaque objet blob d’un conteneur donné doit également avoir un nom unique dans ce conteneur.

Si vous tentez de créer un conteneur ou un objet blob avec un nom qui enfreint les règles d’affectation de noms, la demande échoue avec le code d’état 400 (demande incorrecte).

Les noms d’objets blob et de conteneur sont passés au service Blob dans une URL. Certains caractères doivent être encodés en pourcentage pour apparaître dans une URL, à l’aide d’UTF-8 (préféré) ou de MBCS. Cet encodage se produit automatiquement lorsque vous utilisez les bibliothèques clientes stockage Azure. Toutefois, certains caractères ne sont pas valides dans les chemins d’URL même encodés. Si ces caractères apparaissent dans des noms d’objets blob ou de conteneur, la requête peut échouer. Pour obtenir la liste de ces caractères, consultez caractères Unicode non recommandés pour une utilisation dans les noms de conteneur ou d’objets blob.

Les points de code tels que \uE000, alors qu’ils sont valides dans les noms de fichiers NTFS, ne sont pas des caractères Unicode valides, de sorte qu’ils ne peuvent pas être utilisés. En outre, certains caractères ASCII ou Unicode, tels que les caractères de contrôle (0x00 à 0x1F, \u0081, etc.), ne sont pas autorisés.

Pour obtenir des règles supplémentaires régissant les chaînes Unicode dans HTTP/1.1, consultez RFC 2616, section 2.2 : Règles de base et RFC 3987.

Noms de conteneurs

Un nom de conteneur doit être un nom DNS valide, conforme aux règles d’affectation de noms suivantes :

  • Les noms de conteneur doivent commencer ou se terminer par une lettre ou un nombre, et ne peuvent contenir que des lettres, des chiffres et le caractère tiret/moins (-).

  • Chaque trait d’union/moins (-) doit être immédiatement précédé et suivi d’une lettre ou d’un nombre ; les traits d’union consécutifs ne sont pas autorisés dans les noms de conteneurs.

  • Toutes les lettres d’un nom de conteneur doivent être en minuscules.

  • Les noms de conteneur doivent être compris entre 3 et 63 caractères.

Noms de répertoires

Si votre compte possède un espace de noms hiérarchique, un nom de répertoire doit être conforme aux règles d’affectation de noms suivantes :

  • Un nom de répertoire peut contenir n’importe quelle combinaison de caractères.

  • Un nom de répertoire doit avoir au moins un caractère long et ne peut pas comporter plus de 1 024 caractères.

  • Les noms de répertoire respectent la casse.

  • Les caractères d’URL réservés doivent être correctement placés dans l’échappement.

Note

Évitez les noms de répertoires qui se terminent par un point (.), une barre oblique (/), une barre oblique inverse (\) ou une séquence ou une combinaison des deux. Aucun segment de chemin d’accès ne doit se terminer par un point (.).

Capture d’écran de la barre oblique inverse non autorisée.

Noms d’objets blob

Un nom d’objet blob doit être conforme aux règles d’affectation de noms suivantes. Ces règles s’appliquent également aux objets blob dans les comptes qui ont un espace de noms hiérarchique, sauf indication contraire.

  • Un nom d’objet blob peut contenir n’importe quelle combinaison de caractères.

  • Un nom d’objet blob doit avoir au moins un caractère long et ne peut pas contenir plus de 1 024 caractères, pour les objets blob dans stockage Azure.

    L’émulateur stockage Azure prend en charge les noms d’objets blob pouvant atteindre 256 caractères. Pour plus d’informations, consultez Utiliser l’émulateur de stockage Azure pour le développement et le test.

  • Les noms d’objets blob respectent la casse.

  • Les caractères d’URL réservés doivent être correctement placés dans l’échappement.

  • Il existe des limitations sur le nombre de segments de chemin d’accès comprenant un nom d’objet blob. Un segment de chemin est la chaîne entre des caractères délimiteurs consécutifs (par exemple, une barre oblique /) qui correspond au répertoire ou au répertoire virtuel. Les limitations de segment de chemin d’accès suivantes s’appliquent aux noms d’objets blob :

    • Si le compte de stockage n' pas d’espace de noms hiérarchique activé, le nombre de segments de chemin d’accès comprenant le nom de l’objet blob ne peut pas dépasser 254.
    • Si l’espace de noms hiérarchique est activé pour le compte de stockage, le nombre de segments de chemin d’accès comprenant le nom de l’objet blob ne peut pas dépasser 63 (y compris les segments de chemin d’accès pour le nom du compte et le nom du conteneur).

Note

Évitez les noms d’objets blob qui se terminent par un point (.), une barre oblique (/), une barre oblique inverse (\) ou une séquence ou une combinaison des deux. Aucun segment de chemin d’accès ne doit se terminer par un point (.).

Capture d’écran de la barre oblique non autorisée.

Par défaut, le service Blob est basé sur un schéma de stockage plat, et non sur un schéma hiérarchique. Toutefois, vous pouvez spécifier un délimiteur de caractères ou de chaîne dans un nom d’objet blob pour créer une hiérarchie virtuelle. Par exemple, la liste suivante affiche des noms d’objets blob valides et uniques. Notez qu’une chaîne peut être valide comme nom d’objet blob et comme nom de répertoire virtuel dans le même conteneur :

  • /un

  • /a.txt

  • /a/b

  • /a/b.txt

Vous pouvez tirer parti du caractère délimiteur lors de l’énumération d’objets blob.

Noms de clé et de valeur de métadonnées

Les métadonnées d’un conteneur ou d’une ressource d’objet blob sont stockées en tant que paires nom-valeur associées à la ressource. Les noms de clés de métadonnées doivent respecter les règles d’affectation de noms suivantes :

  • Doit commencer par une lettre ou un trait de soulignement

  • Les caractères suivants peuvent être des lettres, des chiffres ou des traits de soulignement

  • Le nom de clé de métadonnées doit être ASCII valide

Les noms de valeurs de métadonnées doivent également être ASCII valides. Notez que les noms de métadonnées conservent le cas avec lequel ils ont été créés, mais ne respectent pas la casse lors de la définition ou de la lecture. Si deux en-têtes de métadonnées ou plus portant le même nom sont envoyés pour une ressource, le service Blob retourne le code d’état 400 (demande incorrecte).

Syntaxe de l’URI de ressource

Chaque ressource a un URI de base correspondant, qui fait référence à la ressource elle-même.

Pour le compte de stockage, l’URI de base inclut uniquement le nom du compte :

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

Pour un conteneur, l’URI de base inclut le nom du compte et le nom du conteneur :

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

Pour un objet blob, l’URI de base inclut le nom du compte, le nom du conteneur et le nom de l’objet blob :

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

Un compte de stockage peut avoir un conteneur racine, un conteneur par défaut qui peut être omis à partir de l’URI. Un objet blob dans le conteneur racine peut être référencé sans nommer le conteneur, ou le conteneur racine peut être explicitement référencé par son nom ($root). Pour plus d’informations, consultez Utilisation du conteneur racine. Les URI suivants font référence à un objet blob dans le conteneur racine :

https://myaccount.blob.core.windows.net/myblob  
https://myaccount.blob.core.windows.net/$root/myblob  

Instantanés d’objets blob

Un instantané est une version en lecture seule d’un objet blob stocké tel qu’il était au moment de la création de l’instantané. Vous pouvez utiliser des instantanés pour créer une sauvegarde ou un point de contrôle d’un objet blob. Un nom d’objet blob d’instantané inclut l’URI de l’objet blob de base, ainsi qu’une valeur de date-heure qui indique quand l’instantané a été créé.

Par exemple, supposons qu’un objet blob possède l’URI suivant :

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

L’URI d’un instantané de cet objet blob est formé comme suit :

https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>

Le tableau suivant fournit la liste des caractères Unicode qui ne sont pas recommandés pour une utilisation dans des noms de conteneur ou d’objets blob. Ces caractères, lorsqu’ils sont utilisés en combinaison avec d’autres caractères de cette liste, peuvent échouer au décodage UTF-8 ou MBCS, ce qui entraîne l’échec de la requête au service Blob.

Caractère Unicode
U+0080
U+0082
U+0083
U+0084
U+0085
U+0086
U+0087
U+0088
U+0089
U+008A
U+008B
U+008C
U+008E
U+0091
U+0092
U+0093
U+0094
U+0095
U+0096
U+0097
U+0098
U+0099
U+009A
U+009B
U+009C
U+009E
U+009F
U+FDD1
U+FDD2
U+FDD3
U+FDD4
U+FDD5
U+FDD6
U+FDD7
U+FDD8
U+FDD9
U+FDDA
U+FDDB
U+FDDC
U+FDDE
U+FDDF
U+FDE0
U+FDE1
U+FDE2
U+FDE3
U+FDE4
U+FDE5
U+FDE6
U+FDE7
U+FDE8
U+FDE9
U+FDEA
U+FDEB
U+FDEC
U+FDED
U+FDEE
U+FDEF
U+FFF0
U+FFF1
U+FFF2
U+FFF3
U+FFF4
U+FFF5
U+FFF6
U+FFF7
U+FFF8
U+FFF9
U+FFFA
U+FFFB
U+FFFC
U+FFFD
U+FFFE
U+FFFF
U+1FFFE
U+1FFFF
U+2FFFE
U+2FFFF
U+3FFFE
U+3FFFF
U+5FFFE
U+5FFFF
U+6FFFE
U+6FFFF
U+7FFFE
U+7FFFF
U+9FFFE
U+9FFFF
U+AFFFE
U+AFFFF
U+BFFFE
U+BFFFF
U+DFFFE
U+DFFFF
U+EFFFE
U+EFFFF
U+FFFFE
U+FFFFF

Voir aussi