Está en la página 1de 5

Almacenamiento de blobs

Conceptos de almacenamiento de blobs

Hola y bienvenido a este módulo en Blob Storage en Windows Azure. El almacenamiento de blobs,
como mencioné anteriormente, se trata de almacenar objetos grandes: video, audio, imágenes, tal
vez documentos binarios o de texto. Pero como vamos a acceder a esto a través de HTTP, también
necesitamos la capacidad de almacenar metadatos con esos blobs. Algunos metadatos son
metadatos HTTP específicos, como el tipo de contenido o la codificación, que se pueden usar cuando
accedemos a estos blobs a través de HTTP. Es importante que el cliente sepa cuando solicita algo
que el contenido que está recuperando es un formato de imagen o audio en particular para que la
aplicación del cliente pueda procesarlo correctamente. Además, puede asignar sus propios
metadatos en forma de pares de valores clave para etiquetar sus manchas con información adicional
. Cuando vea el almacenamiento de blobs debajo de su cuenta, tendrá lo que se conoce como un
contenedor raíz . Puede pensar en esto como un alto nivel, como el disco duro: la unidad C o la
unidad D que tiene en su máquina. Puede poner cosas en ese nivel: archivos, imágenes, archivos
de texto, pero también puede crear carpetas adicionales en esa unidad. En este caso, puede ver en
el segundo nivel que hemos llamado contenedores; ahora este es el único nivel en el que podemos
agregar contenedores adicionales; no podemos anidar más alto que esto, o cualquier otro más bajo
que puedas decir. Pero podemos tener estos contenedores con nombre , que luego podemos usar
para establecer políticas de seguridad y otras reglas de tipo de contención . Dentro de los
contenedores, ya sea el nombre o el contenedor raíz, tenemos los blobs. Ahora, el blob en sí tiene
un nombre, como puede ver en el primer ejemplo, podemos usar cualquier nombre que queramos y,
a menudo, usar nombres de archivos típicos tiene sentido. Pero también podemos dar la apariencia
de un mayor anidamiento en la jerarquía usando, dentro del nombre, el separador de directorio típico.
Así que puedes ver web / fondo. jpg que parece que tengo otro contenedor llamado web, cuando en
realidad web / es parte del blob nombre. La razón por la que podría hacer esto es porque hay, en la
API, operaciones que le permiten listar blobs, y puede proporcionar un prefijo. Así que puedes usar
esto como un método de categorización adicional, permitiéndote ir a buscar todos los elementos que
comienzan con web /. En realidad, hay dos tipos diferentes de blobs con los que puede trabajar :
blobs de bloque y blobs de página. Ahora es difícil decir un blob de bloques diez veces más rápido,
pero son datos que se escriben en bloques o en fragmentos. Entonces escribes estos pequeños
fragmentos de datos y asocias todas esas cosas juntas en un blob. Y esto es genial cuando piensas
en subir videos o datos grandes, porque ahora puedes subirlos. Todos los trozos pequeños y luego
volver a montarlo ; Permitiéndole paralelizar eso y agregar varios subprocesos, múltiples solicitudes
para que esa carga sea más rápida. Con blobs de bloques , tiene un límite de 200 GB para un blob
individual. Esto es típicamente lo que usarías para algo que vas a pensar acerca de la transmisión;
Así que imágenes, video, audio, todo ese tipo de cosas. Por otro lado, los blobs de página están
configurados de tal manera que puede leer y escribir rangos específicos del blob. Entonces, esto
realmente es similar a un disco duro donde puedes salir, dices, oye, quiero obtener este archivo que
está escrito en este lugar en particular en este disco duro. En De hecho, hay un mecanismo mediante
el cual puede cargar discos duros virtuales en el almacenamiento de blobs de Azure como manchas
de página, y luego puede acceder a ellos accediendo a los diferentes rangos del disco duro virtual.
Los blobs de página tienen un límite de tamaño de 1 TB, por lo que puede cargar un disco duro de
muy buen tamaño en el almacenamiento de Azure. Hay varias formas diferentes de interactuar con
el servicio de blob. La interfaz REST, por supuesto, que nos permite usar HTTP con nuestro
encabezado de token de seguridad o encabezado de autorización , le permite crear blobs, manipular
los metadatos, listar y descargar esos blobs y trabajar con los contenedores. Sin embargo, las
manchas, porque a menudo contienen El contenido y los medios que desea compartir, también
proporcionan un mecanismo para el acceso HTTP simple . Esencialmente, puedes hacer público
todo el contenedor o blobs particulares ; lo que significa que, siempre que tenga el URI, puede
acceder a ellos. Ahora, la diferencia aquí entre que un contenedor o un blob es público es que si el
contenedor es público, significa que podría entrar y encontrar todos los diferentes blobs que hay allí.
Podría enumerar esos contenidos particulares . Hacer público un blob significa que mientras tenga
el URI de ese blob específico , podría hacer una solicitud GET de HTTP sin información de seguridad
o encabezados de autorización y recuperar ese blob. Eso es perfecto para imágenes y otros archivos
multimedia en los que desea permitir que alguien acceda a ellos o, por ejemplo , está haciendo
referencia a ellos desde una página web. Finalmente, con blobs tenemos la oportunidad de usar la
red de entrega de contenido de Microsoft ; esto le permite tener sus blobs distribuidos a través de
Content Delivery Networks o caches en todo el mundo, para que la primera vez que alguien acceda,
digamos desde Asia, obtenga una copia de su blob y se almacene en caché en la Content Delivery
Network. La segunda persona de esa geolocalización para acceder a su blob obtendrá esa copia en
caché en lugar de tener que volver a la fuente. Y tu puedes en cierta medida, controle el
almacenamiento en caché configurando la propiedad de metadatos de caché de contenido , que
indica el tiempo de vida en el caché de la red de entrega de contenido. Así que esos son todos
mecanismos diferentes para acceder y trabajar con esos blobs; En última instancia, todo está
construido sobre HTTP.

Demostración: Trabajando con blobs

Aquí estoy otra vez con Azure Storage Explorer y Fiddler, conectado a mi cuenta, y voy a trabajar
con algunos blobs. Así que pueden ver que tengo la idea de trabajar con los contenedores y las
manchas. Así que voy a crear un nuevo contenedor, voy a llamar a estas vacaciones; No te
preocupes, no te aburriré con todas las diapositivas de mis vacaciones familiares, pero voy a poner
un par de fotos de vacaciones como ejemplos. Y voy a marcar esto como contenedor público para
accesibilidad. Y lo que eso significa es que cualquiera puede subir utilizando la API REST y listar el
contenido de este contenedor. No pueden, sin autorización, modificar o cámbielas, pero podrían
aparecer y hacer una solicitud GET con un URI particular, como veremos, y obtener una lista de
todas las manchas aquí. Ahora crearé otros autores llamados , y este lo marcaré como Public Blob.
Y la diferencia aquí es que con Public Blob debes tener la URL exacta del blob que deseas obtener
para realizar un GET sin autorización; No puedes enumerar los contenidos del contenedor. Así que
esto es muy útil si quiere tener imágenes, por ejemplo, y va a hacer referencia a HTML con una
etiqueta de imagen, donde va a conocer la ruta, o le enviará a alguien el enlace un particular video
o audio o imagen; Puede enviarles el enlace, pueden obtenerlo, pero no tendrán acceso para
enumerar necesariamente todos los contenidos. Si vamos a ver lo que sucedió aquí, podemos ver
que hizo un PUT estándar en mi base de datos. blob, y / vacation, el nombre de mi almacenamiento
y justo después hace un PUT para esas vacaciones, pero esta vez, voy a abrir este abierto, si
miramos, notarán que la operación que está haciendo es el acl Así que saldrá y establecerá el control
de acceso, y aquí mismo envía un encabezado, lo que indica que el blob - acceso público está en el
nivel del contenedor . Ahora obviamente tenía que ser autorizado para hacer eso, y se puede ver
que no estaban enviando ningún identificador firmado ni más restricciones allí. Del mismo modo,
para los autores hace un PUT a / autores, y luego viene con la acl, y aquí hace un x-ms-blob-public-
access: blob. Así que esto permite un acceso público a su almacenamiento de blobs con dos
opciones: no tiene que abrir todo, solo puede asegurarse de que la gente pueda obtener los blobs
que desee sin tener que hacer nada específico. Así que volvamos ahora y agreguemos algunas
imágenes, así que en los autores de aquí, permítanme subir una imagen. Y veremos que eso se
carga allí. Y note que configura el contenido. tipo, por lo que los encabezados de metadatos se
establecen ahora; así que mat-milner. png está ahí. Regresa a Fiddler por supuesto y ve a nuestro
201 que está subiendo allí; puede ver que está usando un bloque de blob en este caso, y está
enviando ese elemento en particular, y solo está haciendo un PUT a los autores /, y luego el nombre
del archivo. Y podemos ver que el contenido está ahí también. Ahora pasó e hizo un PUT a ese
elemento, y la operación es de propiedades, y aquí puede ver el ms-blob-content-md5, tipo de
contenido, aquí es donde se configura ese tipo de contenido para que yo Puede ir y agarrar este
recurso. Así que incluso podría tomar este URI ahora, pasar a Internet Explorer, péguelo, vuelve, y
dado que el tipo de contenido está ahí, obviamente mi navegador sabe qué hacer con él, es capaz
de devolverme esa imagen. Entonces, si nos vamos de vacaciones ahora, subiré un par de artículos
aquí, allá vamos, así que todos están ahí arriba. Ahora, todos están agrupados en el contenedor de
vacaciones, pero en realidad son de dos vacaciones diferentes : tengo un par de Hawai y uno de
Wyoming. Así que voy a entrar y renombrar esto, lo voy a llamar hawaii / pool. jpg Y renombraré a
los demás. Y recuerda, esto no es crear un nuevo contenedor, puedes ver que todavía tengo los dos
contenedores; estos todavía están en el contenedor de vacaciones. Esto es parte del nombre del
blob, pero esto me permitirá salir y hacer una lista de estos elementos en particular aquí. Ahora
debería poder ir y acceder a estos también, así que ahora teníamos vacaciones /, y ahora el nombre
de blob incluye ese hawaii / pool. jpg, y puedo recuperar esa imagen entonces, solo con un HTTP
GET desde aquí. Del mismo modo, si entramos y hacemos Wyoming, hay algunas personas que
suben a la Torre del Diablo en Wyoming, una imagen horrible apareció a través de uno de esos
pequeños telescopios, pero entiendes la idea. Así que tengo estas cosas ahí fuera, ahora son
accesibles al público. Vamos a mire un poco lo que sucedió aquí en el extremo posterior cuando
creamos estas cosas; así que creamos el artículo de Hawaii, recuerde que lo cambiamos de nombre
a hawaii, y así verá que lo que realmente hizo fue hacer un cambio de nombre de estas cosas. Se
puede ver que hizo un PUT; Lo primero que hizo fue PUT para hawaii / pool. jpg, y observe que la
longitud del contenido es 0, en realidad no envió ningún contenido en este momento, solo está
creando un marcador de posición; significa que quiero asegurarme de que puedo cambiar el nombre
de este elemento, así que voy a crear un blob con este nuevo nombre, hawaii / pool. jpg Y luego
aparece y hace un PUT allí, otra vez sin contenido, pero esta vez, note que hace una x-ms-copia-
fuente por ahí. Así que, esencialmente estamos haciendo una copia en la burbuja de
almacenamiento, no vamos a tener que enviar la imagen de copia de seguridad de nuevo, es sólo la
copia de un llamado punto de burbuja a otra, y luego una vez que se copió, sale y hace Una
eliminación del artículo original. Así que un par de cosas suceden allí; estamos haciendo un PUT sin
contenido, solo asegurándonos de crear ese blob con el que puedes trabajar y asegurarnos de que
esté disponible, luego hay un blob de copia y luego eliminamos el elemento original que estaba ahí
fuera . Así que tenemos estos artículos aquí, podemos ver que podemos crearlos, podemos cambiar
esos nombres, hemos accedido a ellos, Lo último que quiero mostrar es la diferencia entre el acceso
público a nivel de blob y el acceso a nivel de contenedor. Entonces, lo que voy a hacer es venir aquí
y ahora voy a pegar este elemento diferente , y voy a decir que voy al contenedor de vacaciones, y
quiero enumerar los contenidos. de ese contenedor. Si hago eso aquí, verás que recupero todas las
manchas; así que tengo las tres de mis manchas que se enumeran allí. Ese es el nivel de contenedor
público; Puedo ir a obtener una lista de todos esos artículos. Sólo estoy haciendo una solicitud del
navegador. Ahora si simplemente cambio las vacaciones aquí a los autores; Cambie el contenedor
con el que estoy trabajando, me sale un 404. Ahora los autores tienen razón, esa es una solicitud
válida , pero el problema es que los autores tienen acceso a nivel de blob, por lo que no me permiten
enumerar los contenidos del contenedor. Ahora también puedo volver aquí, recuerde que utilicé este
hawaii delante de estos, así que nuevamente son parte del nombre de blob , pero la razón por la que
puedo hacerlo es cuando vengo a hacer estas listas en las que ahora puedo entrar. y agrega el
prefijo = hawaii. Así que he agregado este prefijo = hawaii /, y ahora solo obtengo hawaii. piscina y
hawaii. surfistas La foto de Wyoming no se encuentra. Por lo tanto, los prefijos le permiten dar una
cierta estructura a los elementos que están en el contenedor, lo que le permite agruparlos juntos, y
cuando estás haciendo estas operaciones de lista que actúan como un filtro para que solo puedas
enumerar elementos que comiencen con prefijos particulares como lo hice aquí con Hawai. Así que
ha visto crear blobs y contenedores, hemos visto cómo se manipulan esos elementos y la diferencia
entre el acceso público a nivel de contenedor y el acceso público a nivel de blob . Una de las cosas
acerca de estos es que todos se levantaron como bloques de bloques ; se trataba de imágenes,
videos y cosas así. En otro módulo veremos algunos elementos más detallados sobre la seguridad
que puede hacer, no solo con blobs, sino también con colas y tablas ahora.
Demo: CDN

Cuando esté utilizando el almacenamiento de blobs, es posible que desee aprovechar el CDN o la
red de entrega de contenido. Mi almacenamiento de manchas es en este fundamento azul. gota.
núcleo. las ventanas red. Eso está alojado en una región particular, un centro de datos particular ;
Sucede que está en North Central con la replicación de GEO en South Central US. Quiero hacer que
este blob storage esté disponible globalmente; Quiero poder almacenar en caché el contenido de
todo el mundo, de modo que mis archivos, videos, imágenes y cosas más grandes se puedan
almacenar en caché y el CDN y dar un mejor rendimiento a mis clientes globales que llegan a esta
cita. Ahora a partir del momento de esta grabación no puedes hacer esto. en el portal más nuevo,
este portal basado en HTML , debe volver al antiguo portal de Silverlight. Estoy seguro de que el día
después de publicar este curso, lanzarán una nueva función, y querrá mirar hacia abajo en la barra
de herramientas en la parte inferior para ver un indicador cuando esté en el tablero o cuando esté
en los contenedores de blob, alguna capacidad para editar o crear el CDN. Por ahora, acceda a su
inicio de sesión y haga clic en el enlace del portal anterior. Esto abrirá una nueva ventana y nos
llevará de vuelta al portal original basado en Silverlight que aún tiene algunas características o
algunas de las perillas que emergieron. Así que haré clic en Servicios alojados , Cuentas de
almacenamiento y CDN, y verás que todavía tengo mi misma cuenta de almacenamiento aquí; va
tras los mismos datos, la misma información, pero luego puedo bajar a la CDN y configurar un nuevo
punto final; La red de entrega de contenido. Voy a hacer esto un poco hacia atrás, porque se demora
un poco en propagarse, así que les mostraré aquí. Ya tengo este punto final de CDN configurado, y
pueden ver que aquí está el dirección, copiemos eso, HTTP, pegaremos esa dirección del servidor,
luego pondré el nombre de mi contenedor que era de vacaciones, y tenía debajo de hawaii / pool.
jpg Y que luego vendrá de la CDN; Note que la URL que he usado no es mi almacenamiento
fundamental, es el CDN, por lo que si estuviera en Europa, si estuviera en Asia, este contenido se
almacenaría en caché en el CDN, por lo que podríamos, en la próxima recuperación, yo mismo u
otro usuario en esa región, vendría del caché en lugar de tener que regresar a los Estados Unidos
para obtener la imagen. Que encienda las herramientas de seguimiento aquí en IE y ejecutarlo de
nuevo. Usted ve cuando hacemos un GET, el resultado es un 304, lo que indica que fue devuelto
desde el caché, estamos utilizando la copia de caché de eso. Ahora, ¿cómo configuramos esto?
Vamos a seguir y eliminar ese punto final en particular. Ese punto final se ha ido, así que ahora
podemos entrar y crear un nuevo punto final. Usted ve que tiene que elegir una suscripción, solo
tengo una, elegir un servicio alojado o una cuenta de almacenamiento; el servicio alojado tiene los
íconos azules que parecen notas informáticas, y el almacenamiento azul fundamental parece un
pequeño archivador . Como puede ver aquí, la URL ya se ha dado cuenta de que es mi punto final
de blob . Voy a habilitar el CDN, puedes habilitar HTTPS; sin embargo, esto usará un certificado de
Microsoft para el CDN, por lo que el contenido aún se recuperará en el caché usando HTTP para su
almacenamiento de blobs, y luego los usuarios podrán usar SSL para el caché, pero no es así. va a
ser tu certificado También tú puede habilitar la cadena de consulta, por lo que si sus resultados
difieren según la cadena de consulta, puede habilitar eso y eso lo desencadena a la memoria caché
según esos parámetros de cadena de consulta . En mi caso, no necesito eso para el almacenamiento
de blobs. Ahora señalaré que estoy hablando de almacenamiento de blobs, y ese es uno de los
principales lugares donde puedes hacer esto; sin embargo, notará que también me ofrecieron la
opción de elegir un servicio hospedado . Y si hago eso, lo que sucede entonces es que asume que
debajo de ese servicio alojado, probablemente mi función web, tendré una carpeta CDN cuando
pueda poner contenido estático. Así que podrías poner imágenes y otros artículos. debajo de esa
carpeta, y que también se almacene en caché en el CDN. Así que voy a seguir adelante y volver al
almacenamiento, porque aquí estoy centrado en las manchas, y crearemos eso. Y me dirá que esto
puede tardar hasta 60 minutos en propagarse en todo el mundo. Así que va a seguir adelante y
crearlo; Es por eso que le mostré el uso real antes de tiempo, así que no tuvimos que esperar 60
minutos. Y ahora se apagará, y cuando se actualice veremos que se aprovisiona ese punto final ,
pero como se dijo, puede tomar hasta 60 minutos antes de que sea accesible en todo el mundo. Por
lo tanto, hay un punto final de CDN , si salimos y tratamos de Acceda ahora mismo, probablemente
no tendríamos suerte; tenemos que esperar esos 60 minutos o una parte de eso antes de que los
puntos finales de CDN estén en funcionamiento. Por lo tanto, puede cerrar esto, lo que lo lleva de
vuelta en la otra pestaña aquí al portal existente donde puede continuar y administrar su cuenta de
almacenamiento.

HDInsight admite tanto el Sistema de archivos distribuidos de Hadoop (HDFS) como el Blob de
almacenamiento de Azure.

El almacenamiento de Microsoft Azure es un servicio de almacenamiento escalable, duradero y de


alta disponibilidad.

Microsoft Azure ofrece los siguientes servicios de almacenamiento:

Almacenamiento de blobs: un medio eficaz para almacenar grandes cantidades de datos no


estructurados en la nube. El almacenamiento de blobs funciona para archivos de texto o datos
binarios (documentos, imágenes, conjuntos de Big Data, como archivos de registro, y más). Las
manchas se organizan en contenedores. Blob storage ofrece dos tipos de blobs, blobs de bloques
(optimizados para transmitir y almacenar objetos en la nube) y blobs de páginas (optimizados para
escrituras aleatorias). El tamaño máximo para un blob de bloque es de 200 GB, y el tamaño máximo
para un blob de página es de 1 TB.

Almacenamiento de tablas: el almacén de clave / atributo para Microsoft NoSQL.

Almacenamiento de colas: una solución de mensajería para la comunicación entre aplicaciones.

Almacenamiento de archivos: almacenamiento compartido para aplicaciones heredadas.