Stockage d'objets blob Azure et service de fichiers [fermé]


130

Veuillez corriger mes torts. D'après ma lecture sur le sujet jusqu'à présent, il me semble que le stockage d'objets blob Azure et le service de fichiers offrent tous les deux la possibilité de stocker des fichiers et des dossiers (je comprends que les objets blob peuvent stocker n'importe quel objet binaire, mais tout objet sérialisé le flux binaire est juste un fichier à la fin de la journée) dans une structure hiérarchique qui imite un système de fichiers.

Seule l'API pour y accéder est légèrement différente en ce que le service de fichiers vous permet d'interroger la source à l'aide de fonctions de type E / S de fichier Win32, en plus d'utiliser l'API REST.

Pourquoi choisiriez-vous l'un plutôt que l'autre si vous vouliez que votre application stocke certains fichiers appartenant aux utilisateurs de votre application?


6
Avez-vous lu ce billet de blog de l'équipe de stockage Azure: blogs.msdn.com/b/windowsazurestorage/archive/2014/05/12/… ? Veuillez faire défiler jusqu'à la section où il explique quand utiliser quel service.
cessé de contribuer le

3
Oui, j'ai lu cet article avant de poster. Je suis à un stade très précoce de réflexion et ma compréhension n'est pas encore bien formée. Je suis toujours confus. Je comprends tout ce qui est écrit dans tous les articles que j'ai lus, mais j'essaie de déterminer ce qu'il y a de mieux à utiliser si je souhaite stocker des fichiers appartenant à l'utilisateur pour une application que je conçois.
Water Cooler v2

Je suppose que cela se résume à ce que vous voulez faire avec ces fichiers utilisateur? Seront-ils en quelque sorte diffusés en continu (via un navigateur Web, etc.) ou seront-ils traités ultérieurement? S'il s'agit d'un ancien, le stockage d'objets blob a du sens. Si c'est le cas, le service de fichiers a du sens.
cessé de contribuer le

1
La chose est: je veux laisser l'utilisateur télécharger et télécharger ses propres fichiers et également partager certains d'entre eux avec d'autres dans son groupe de contacts (pour qu'ils ne téléchargent / lisent que). Je pourrais utiliser les signatures d'accès partagé (SAS) avec le stockage Blob pour ce faire, mais cela ne répondrait pas à mes exigences de «partage». J'étais penché vers une solution où mon application / service effectuait toute l'authentification et n'exposait pas la ressource de stockage réelle à l'utilisateur. Dans ce contexte, pour moi, le service de fichiers et le stockage Blob font la même chose. Personne ne m'offre plus de confort que l'autre.
Water Cooler v2

@ WaterCoolerv2 Pouvez-vous m'aider à choisir entre le stockage de fichiers
Azure

Réponses:


110

Quelques éléments pour votre question:

  1. Vous ne pouvez pas monter Azure Blob Storage en tant que partage natif sur une machine virtuelle.
  2. Azure Blob Storage n'est pas hiérarchique au-delà des conteneurs. Vous pouvez ajouter des fichiers contenant des caractères / ou \ qui sont interprétés comme des dossiers par de nombreuses applications qui lisent le stockage d'objets blob.
  3. Azure File Service fournit une interface de protocole SMB à Azure Blob Storage qui résout le problème avec (1).

Si vous développez une nouvelle application, tirez parti de l'API Azure native directement dans le stockage Blob.

Si vous portez une application existante qui doit partager des fichiers, utilisez Azure File Service.

Notez qu'il existe quelques fonctionnalités de protocole SMB que Azure File Service ne prend pas en charge .


1
Merci beaucoup, Simon. Quelques informations sur votre réponse. Voyez, à la fin de la journée, je veux un résultat final. De ce point de vue, j'ai posté cette question. Du point de vue du résultat final, les arguments n ° 1 et n ° 3 de votre liste ne sont pas pertinents. Je ne discute pas du tout avec vous. :-) Votre réponse est extrêmement utile. J'essaie simplement de vous expliquer le processus de réflexion qui m'a amené à poser cette question. Et l'argument n ° 2 n'est pas un problème car il présente un problème et dit que ce n'est pas un problème, cependant. En supposant que je souhaite stocker des fichiers appartenant à l'utilisateur, je me suis demandé pourquoi préférerais-je l'un à l'autre?
Water Cooler v2

Voir les deux points après la liste numérotée - cela devrait être votre guide.
Simon W

1
@SimonW - les deux points après votre guide sont indiqués comme "la façon de le faire". Cependant, ce ne sont pas des absolus. Ce sont plus des suggestions, dans ce scénario. Dans certains cas, vous ne voudriez pas utiliser directement l'API Azure, même avec une nouvelle application. De même, dans certains cas, vous souhaiterez peut-être retravailler les applications existantes pour utiliser l'API Azure.
David Makogon

Y a-t-il une différence de performance IOPS entre eux?
LaPuyaLoca

@SimonW - pouvez-vous élaborer sur le point 3 ci-dessus? Est-ce un moyen de monter un Blob en tant que partage de fichiers SBM ou d'y accéder en tant que «disque» d'une manière ou d'une autre?
Neil Weicher

38

Quelques autres choses à considérer:

  • Tarification: le stockage Blob est beaucoup moins cher que le stockage de fichiers.
  • Portabilité: avec le stockage blob, si vous décidez de migrer vers une plate-forme de différence à l'avenir, vous devrez peut-être modifier le code de votre application, mais avec le stockage de fichiers, vous pouvez migrer votre application vers toute autre plate-forme prenant en charge SMB (en supposant que vous utilisez des API de système de fichiers natives dans votre appli)

4
Le prix ici est un facteur énorme (environ une différence de 5x actuellement), et mérite également une mention est la limite de 5 To de stockage de fichiers.
TZHX

Ancien message, mais je le lis pour la première fois aujourd'hui. Il existe une limite de 5 To par défaut sur le niveau de prix standard, mais cela peut être modifié via un passage à une limite de 100 To. Remarque * L'activation des partages de fichiers volumineux sur un compte est un processus irréversible sur un compte de stockage Azure. docs.microsoft.com/azure/storage/files/…
Ruwd

10

Azure File Service est davantage ciblé sur la gestion des fichiers internes. Avec interne, je veux dire monter un répertoire sur une machine virtuelle dans le cloud ou sur site afin qu'il puisse être chargé dans votre back-end (protocole basé sur SMB).

Pour le partage de fichiers avec des utilisateurs finaux (Web ou applications), il est probablement plus judicieux d'utiliser le stockage d'objets blob, car cela simplifie le téléchargement via une URL et la sécurisation du téléchargement via les signatures d'accès partagé.

Cet article partage plus de détails sur la comparaison (en bas): https://blogs.msdn.microsoft.com/windowsazurestorage/2014/05/12/introducing-microsoft-azure-file-service/


Salut Clemens Schotte, qu'entend-on par stockage blob permettant le téléchargement via une URL Voulez-vous dire que le stockage de fichiers ne fournit pas d'URL
Heemanshu Bhalla

1
Certaines choses ont changé depuis ces publications, mais le service de fichiers prend en charge le téléchargement via une URL et d'autres API REST ( docs.microsoft.com/en-us/azure/storage/common/… ). De plus, la sécurité semble se situer au niveau du compte de stockage, elle devrait donc être très similaire entre les objets blob et le service de fichiers ( docs.microsoft.com/en-us/azure/storage/common/… ).
KJ le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.