Azure Blob Storage vs. Servicio de archivos [cerrado]

130

Por favor corrige mis errores. Desde mi lectura sobre el tema hasta ahora, me parece que tanto Azure Blob Storage como File Service ofrecen la capacidad de almacenar archivos y carpetas (entiendo que los blobs pueden almacenar cualquier objeto binario, pero cualquier serializado la secuencia binaria es solo un archivo al final del día) en una estructura jerárquica que imita un sistema de archivos.

Solo la API para acceder a ellos es ligeramente diferente en el sentido de que el Servicio de archivos le permite consultar la fuente utilizando funciones similares a E / S de archivos Win32, además de utilizar la API REST.

¿Por qué elegiría uno sobre otro si desea que su aplicación almacene algunos archivos propiedad de los usuarios de su aplicación?

Enfriador de agua v2
fuente
66
¿Ha leído esta publicación de blog del equipo de Azure Storage: blogs.msdn.com/b/windowsazurestorage/archive/2014/05/12/… ? Desplácese hacia abajo a la sección donde explica cuándo usar qué servicio.
Dejó de contribuir el
3
Sí, leí ese artículo antes de publicar. Estoy en las primeras etapas de pensar las cosas y mi comprensión aún no está bien formada. Todavía estoy confundido Entiendo todo lo que está escrito en todos los artículos que he leído, pero estoy tratando de averiguar qué es lo mejor para usar si quiero almacenar archivos propiedad de los usuarios para una aplicación que estoy diseñando.
Water Cooler v2
¿Supongo que se reduce a lo que quieres hacer con estos archivos de usuario? ¿Se transmitirán de alguna manera (a través de un navegador web, etc.) o se procesarán más? Si es anterior, entonces el almacenamiento de blobs tiene sentido. Si es esto último, entonces el servicio de archivos tiene sentido.
Dejó de contribuir el
1
La cuestión es: quiero permitir que el usuario cargue y descargue sus propios archivos y también comparta algunos de ellos con otros en su grupo de contactos (para que solo descarguen / lean). Podría usar Firmas de acceso compartido (SAS) con Blob Storage para hacer eso, pero eso no se ocuparía de mi requisito de "compartir". Me estaba inclinando hacia una solución donde mi aplicación / servicio realizó toda la autenticación y no expuso el recurso de almacenamiento real al usuario. En ese contexto, para mí, tanto el Servicio de archivos como el Blob Storage hacen lo mismo. Nadie me ofrece más consuelo que el otro.
Water Cooler v2
@ WaterCoolerv2 ¿Puede ayudarme a elegir entre el almacenamiento de archivos azul o el almacenamiento de blobs? ¿Qué concluyó?
Heemanshu Bhalla

Respuestas:

110

Algunos artículos para su pregunta:

  1. No puede montar Azure Blob Storage como recurso compartido nativo en una máquina virtual.
  2. Azure Blob Storage no es jerárquico más allá de los contenedores. Puede agregar archivos que tengan / o \ caracteres en ellos que son interpretados como carpetas por muchas aplicaciones que leen el almacenamiento de blobs.
  3. Azure File Service proporciona una interfaz de protocolo SMB para Azure Blob Storage que resuelve el problema con (1).

Si está desarrollando una nueva aplicación, aproveche la API nativa de Azure directamente en Blob Storage.

Si está transfiriendo una aplicación existente que necesita compartir archivos, use Azure File Service.

Tenga en cuenta que hay algunas características del protocolo SMB que Azure File Service no admite .

Simon W
fuente
1
Muchas gracias Simon. Algunas cosas sobre tu respuesta. Mira, al final del día, quiero un resultado final. Desde ese punto de vista, publiqué esta pregunta. Desde el punto de vista del resultado final, los argumentos # 1 y # 3 en su lista no son pertinentes. No estoy discutiendo contigo en absoluto. :-) Su respuesta es extremadamente útil. Solo estoy tratando de decirte el proceso de pensamiento que me llevó a hacer esta pregunta. Y el argumento # 2 no es un problema, ya que presenta un problema y dice que eso no es un problema. Suponiendo que quería almacenar archivos propiedad de los usuarios, estaba pensando, ¿por qué preferiría uno sobre el otro?
Water Cooler v2
Vea los dos puntos después de la lista numerada: esa debería ser su guía.
Simon W
1
@SimonW: los dos puntos después de su guía se indican como "la forma de hacerlo". Sin embargo, no son absolutos. Son más como sugerencias, dentro de ese escenario. Hay casos en los que no querría usar la API de Azure directamente, incluso con una nueva aplicación. Del mismo modo, hay casos en los que es posible que desee volver a trabajar con las aplicaciones existentes para usar la API de Azure.
David Makogon
¿Hay alguna diferencia de rendimiento de IOPS entre ellos?
LaPuyaLoca
@SimonW: ¿puedes explicar el punto 3 anterior? ¿Es esta una forma de montar un Blob como un recurso compartido de archivos SBM o acceder a él como un "disco" de alguna manera?
Neil Weicher
38

Algunas otras cosas a considerar:

  • Precios: el almacenamiento de blobs es mucho más barato que el almacenamiento de archivos.
  • Portabilidad: con el almacenamiento de blobs si decide migrar a una plataforma diff en el futuro, es posible que tenga que cambiar el código de su aplicación, pero con el almacenamiento de archivos puede migrar su aplicación a cualquier otra plataforma que admita SMB (suponiendo que esté utilizando las API nativas del sistema de archivos en tu aplicación)
Dharmendar Kumar 'DK'
fuente
44
El precio aquí es un factor masivo (aproximadamente una diferencia de 5x actualmente), y también vale la pena mencionar el límite de 5 TB de almacenamiento de archivos.
TZHX
Publicación anterior, pero la estoy leyendo por primera vez hoy. Hay un límite de 5 TB por defecto en el nivel de precio estándar, pero eso se puede cambiar a través de un interruptor a un límite de 100 TB. Nota * La habilitación de archivos compartidos grandes en una cuenta es un proceso irreversible en una cuenta de Azure Storage. docs.microsoft.com/azure/storage/files/…
Ruwd
10

Azure File Service está más orientado al manejo interno de archivos. Con interno me refiero a montar un directorio en una VM en la nube o local para que pueda cargarse en su back-end (protocolo basado en SMB).

Para compartir archivos con usuarios finales (web o aplicaciones), probablemente tenga más sentido usar el almacenamiento de blobs, ya que esto simplifica la descarga a través de una URL y asegura la descarga a través de firmas de acceso compartido.

Esta publicación comparte más detalles sobre la comparación (en la parte inferior): https://blogs.msdn.microsoft.com/windowsazurestorage/2014/05/12/introducing-microsoft-azure-file-service/


fuente
Hola Clemens Schotte, ¿qué significan por el almacenamiento de blob permite la descarga throug una URL hacer que el almacenamiento de archivos media no proporcionan direcciones URL
Heemanshu Bhalla
1
Algunas cosas han cambiado desde estas publicaciones, pero el Servicio de archivos admite la descarga a través de una URL y otras API REST ( docs.microsoft.com/en-us/azure/storage/common/… ). Además, la seguridad parece estar en el nivel de la cuenta de almacenamiento, por lo que debe ser muy similar entre Blobs y File Service ( docs.microsoft.com/en-us/azure/storage/common/… ).
KJ