Concevoir une stratégie d’organisation du stockage

Effectué

Quand vous concevez une application qui doit stocker des données, vous devez réfléchir à la manière dont elle va organiser les données dans des comptes de stockage, conteneurs et objets blob.

Comptes de stockage

Un seul compte de stockage apporte suffisamment de flexibilité pour organiser vos blobs. Toutefois, vous devrez peut-être utiliser plus de comptes de stockage, selon vos besoins, pour répartir les coûts et contrôler l’accès aux données de manière logique.

Conteneurs et objets blob

La nature de votre application et des données qu’elle stocke doit guider votre stratégie de nommage et d’organisation des conteneurs et objets blob.

Les applications qui utilisent des objets blob dans le cadre d’un schéma de stockage incluant une base de données n’ont pas souvent besoin de s’appuyer beaucoup sur une organisation, des noms ou des métadonnées pour indiquer quoi que ce soit concernant leurs données. De telles applications utilisent généralement des identificateurs tels que des identificateurs globaux uniques (GUID) en tant que noms d’objets blob, et référencent à ces identificateurs dans des enregistrements de base de données. L’application utilise la base de données pour déterminer où sont stockés les blobs et le type de données qu’ils contiennent.

D’autres applications utilisent le Stockage Blob Azure davantage comme un système de fichiers personnel. Les noms de conteneur et d’objet blob indiquent la signification et la structure. Les noms d’objets blob dans ces types d’applications ressemblent souvent à des noms de fichier habituels. Ils peuvent inclure des extensions de nom de fichier comme .jpg pour indiquer le type de données qu’ils contiennent. Ces applications utilisent des répertoires virtuels pour organiser les objets blob. Elles utilisent fréquemment des balises de métadonnées pour stocker des informations sur les objets blob et les conteneurs.

Au moment de décider de la manière d’organiser et de stocker les objets blob et conteneurs, vous devez prendre en considération quelques aspects clés.

Restrictions de l’affectation des noms

Les noms des conteneurs et objets blob doivent respecter une série de règles, dont des limites de longueur et des restrictions de caractères. Pour des informations plus spécifiques sur les règles de nommage, consultez la section Pour aller plus loin à la fin de ce module.

Accès public et conteneurs comme limites de sécurité

Par défaut, l’accès à tous les objets blob nécessite une authentification. Toutefois, vous pouvez configurer des conteneurs individuels pour permettre le téléchargement public de leurs objets blob sans authentification. Le téléchargement public prend en charge de nombreux cas d’utilisation, tels que l’hébergement de ressources de site web statiques et le partage de fichiers. Cette approche fonctionne parce que le téléchargement du contenu d’objet blob fonctionne de la même façon que la lecture d’autres données sur le web. Vous pointez simplement un navigateur ou tout ce qui peut effectuer une requête GET sur l’URL de l’objet blob.

L’activation de l’accès public est importante pour la scalabilité. Les données téléchargées directement depuis le Stockage Blob ne génèrent aucun trafic dans votre application côté serveur. Prévoyez d’utiliser des conteneurs distincts pour les données qui doivent être disponibles publiquement, même si vous n’autorisez pas immédiatement un accès public ou utilisez une base de données pour contrôler l’accès aux données.

Attention

Quiconque connaît les URL de stockage peut télécharger les objets blob d’un conteneur configuré pour un accès public sans aucune sorte d’authentification ou d’audit. Ne placez jamais dans un conteneur public des données d’objet blob que vous n’avez pas l’intention de partager publiquement.

En plus de l’accès public, Azure intègre une fonctionnalité de signature d’accès partagé qui permet de contrôler précisément les autorisations sur les conteneurs. Ce contrôle de précision permet d’avoir des scénarios qui améliorent encore plus la scalabilité. Il est donc utile d’envisager les conteneurs comme des limites de sécurité.

Préfixes de nom d’objet blob (répertoires virtuels)

Les conteneurs sont plats. Ils ne prennent en charge aucun type d’imbrication ou de hiérarchie. Si vous donnez à vos objets blob des noms hiérarchiques qui ressemblent à des chemins de fichier, par exemple finance/budgets/2017/q1.xls, l’opération de référencement de l’API peut filtrer les résultats sur des préfixes spécifiques. Cette approche vous permet de naviguer dans la liste comme s’il s’agissait d’un système hiérarchique de fichiers et de dossiers.

Certains outils et bibliothèques de client utilisent cette approche pour visualiser et parcourir le Stockage Blob comme s’il s’agissait d’un système de fichiers. Chaque navigation dans un dossier déclenche un appel séparé pour répertorier les objets blob dans le dossier. Cette fonctionnalité est souvent appelée répertoires virtuels.

Remarque

Si vous activez la fonctionnalité d’espace de noms hiérarchique du compte, les répertoires ne sont plus virtuels. Au lieu de cela, ils deviennent des objets concrets et indépendants que vous pouvez utiliser directement. Un répertoire peut exister sans contenir de fichiers. Ce module décrit uniquement les comptes qui n’ont pas de fonctionnalité d’espace de noms hiérarchique activée.

Types d’objet blob

Il existe trois types d’objets blob dans lesquels vous pouvez stocker des données :

  • Les objets blob de blocs sont constitués de blocs de différentes tailles qui peuvent être chargés indépendamment et en parallèle. L’écriture dans un objet blob de blocs implique de charger des données dans des blocs et de les valider dans l’objet blob.
  • Les objets blob d’ajout sont des objet blob de blocs spécialisés qui prennent en charge uniquement l’ajout de nouvelles données, et non la mise à jour ou la suppression de données existantes. Ils sont efficaces dans ce but. Les objets blob d’ajout sont particulièrement adaptés dans des scénarios comme le stockage de journaux ou l’écriture de données diffusées en continu.
  • Les objets blob de pages prennent en charge des scénarios qui impliquent des lectures et écritures en accès aléatoire. Les objets blob de pages sont utilisés pour stocker les fichiers de disque dur virtuel (VHD) utilisés par les Machines virtuelles Azure. Ils sont parfaits pour tous les scénarios qui impliquent un accès aléatoire.

Les objet blob de blocs sont la meilleure option dans la plupart des scénarios qui n’appellent pas spécifiquement des objets blob d’ajout ou de pages. Leur structure basée sur des blocs prend en charge des chargements et téléchargements rapides ainsi qu’un accès efficace aux éléments individuels d’un objet blob. La plupart des bibliothèques de client gèrent et valident automatiquement les blocs. Certains gèrent également les chargements et téléchargements parallèles pour optimiser les performances.

Vérifiez vos connaissances

1.

Supposons que vous devez stocker des informations de profil et de commande sur vos clients. Vous devez interroger les données pour répondre à des questions telles que « Qui sont mes 100 premiers clients ? » et « Combien de clients vivent dans une région géographique donnée ? ». Vrai ou faux : le stockage d’objets blob est un bon choix pour ces données ?

2.

Les objets blob fournissent un stockage de données non structurées. Que signifie non structurées ?