Affectation de noms et références aux conteneurs, objets BLOB et métadonnées

Cette rubrique décrit l'affectation de noms et les références aux conteneurs, objets BLOB, métadonnées et 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 a 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 ressource

L'URI qui référence un conteneur ou un objet BLOB doit être unique. Dans la mesure où chaque nom de compte est unique, deux comptes peuvent être associés à des conteneurs de même nom. Toutefois, dans un compte de stockage donné, chaque conteneur doit avoir un nom unique. Chaque objet BLOB dans un conteneur donné doit également avoir un nom unique.

Si vous essayez de créer un conteneur ou un objet BLOB avec un nom non conforme aux règles d'affectation correspondantes, la demande échoue avec le code d'état 400 (Requête incorrecte).

Les noms d'objet BLOB et de conteneur sont transmis au service BLOB dans une URL. Certains caractères doivent être encodés en pourcentage pour apparaître dans une URL, via UTF-8 (de préférence) ou MBCS. Cet encodage se produit automatiquement lorsque vous utilisez les bibliothèques clientes stockage Azure. Toutefois, il existe certains caractères non valides dans les chemins d'accès des URL même quand ils sont encodés. Si ces caractères apparaissent dans des noms d’objets blob ou de conteneur, la demande peut échouer. Pour obtenir la liste de ces caractères, consultez Caractères Unicode non recommandés pour une utilisation dans les noms de conteneurs ou d’objets blob.

Les points de code tels que \uE000 sont valides dans les noms de fichier NTFS, mais ils constituent des caractères Unicode non valides et ne peuvent pas être utilisés. En outre, certains caractères ASCII ou Unicode, comme 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 conteneur

Un conteneur doit posséder un nom DNS valide, conforme aux règles de nommage 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 trait d’union/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 conteneur.

  • Toutes les lettres du conteneur doivent être minuscules.

  • Les noms de conteneurs doivent comporter entre 3 et 63 caractères.

Noms de répertoires

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

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

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

  • Les noms de répertoires respectent la casse.

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

Notes

É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 ne doit se terminer par un point (.).

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

Noms d'objet BLOB

Un nom d’objet blob doit être conforme aux règles de nommage 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 toutes les combinaisons de caractères.

  • Un nom de blob doit comprendre au moins un caractère et ne peut pas dépasser 1 024 caractères, pour les blobs dans Stockage Azure.

    L’émulateur Stockage Azure prend en charge les noms d’objets blob jusqu’à 256 caractères. Pour plus d’informations, consultez Utilisation de 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ées doivent être correctement placés dans une séquence d’échappement.

  • Le nombre de segments de chemin d’accès comprenant un nom d’objet blob présente des limitations. 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 l’espace de noms hiérarchique n’est pas 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 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 pour le nom du compte et le nom du conteneur).

Notes

É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 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 caractère ou un délimiteur 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 :

  • /a

  • /a.txt

  • /a/b

  • /a/b.txt

Vous pouvez utiliser le caractère délimiteur lors de l'énumération des objets BLOB.

Noms de métadonnées

Les métadonnées d'une ressource de conteneur ou d'objet BLOB sont stockées en tant que paires nom-valeur associées à la ressource. Les noms de métadonnées doivent respecter les règles de nommage des identificateurs C#.

Notez que les noms de métadonnées conservent la casse avec laquelle ils ont été créés, mais ne la respecte plus quand ils sont définis ou lus. Si au moins deux en-têtes de métadonnées avec le même nom sont envoyés pour une ressource, le service BLOB renvoie le code d'état 400 (Demande incorrecte).

Syntaxe d'URI de ressource

À chaque ressource correspond un URI de base, qui fait référence à la ressource elle-même.

Pour le compte de stockage, l'URI de base inclut le nom du compte seulement :

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

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

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

Pour un objet BLOB, l'URI de base inclut le nom du compte, celui du conteneur et celui de l'objet BLOB :

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

Un compte de stockage peut avoir un conteneur racine, c'est-à-dire un conteneur par défaut qui peut être omis dans l'URI. Un objet BLOB du 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 se rapportent à un objet BLOB du conteneur racine :

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

Instantanés d'objet BLOB

Un instantané est une version en lecture seule d'un objet BLOB stocké tel qu'il était à l'heure où l'instantané a été créé. Utilisez des instantanés pour créer une sauvegarde ou un point de contrôle d'un objet BLOB. Le nom d'un instantané d'objet BLOB inclut l'URI de l'objet BLOB de base ainsi qu'une valeur date-heure qui indique le moment où l'instantané a été créé.

Par exemple, supposons qu'un objet BLOB est associé à l'URI suivant :

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

L'URI d'un instantané de cet objet BLOB a le format suivant :

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

Le tableau suivant fournit une liste de caractères Unicode qui ne sont pas recommandés pour une utilisation dans les noms de conteneurs ou d’objets blob. Lorsqu’ils sont utilisés en combinaison avec d’autres caractères de cette liste, le décodage UTF-8 ou MCBS peut échouer, ce qui entraîne l’échec de la demande adressée 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