Utilizando Azure Blob Storage desde Laravel 5.x

Azure Blob Storage desde Laravel 5.x

Azure es la plataforma cloud de Microsoft, entre los tantos servicios que ofrece se encuentra la categoría Storage, en ella encontramos una gran variedad de opciones de almacenamiento que podemos utilizar en nuestras aplicaciones a precios asequibles. Para este post nos centraremos en cómo utilizar el servicio de Blob desde Laravel 5.x.

Empecemos por los conceptos básicos respondiendo algunas preguntas (Si ya conoces sobre el servicio y solo deseas ver como utilizarlo desde Laravel, puedes omitir estas preguntas).

¿Qué podemos hacer con Azure Blob Storage? nos permite almacenar datos no estructurados como objetos o Blob, en ellos podremos almacenar cualquier tipo de datos binarios o texto. En nuestro caso aplicaciones web creadas con Laravel es una excelente opción para almacenar el contenido estático de nuestra aplicación (imágenes, videos, etc.).

Estructura de Azure Blob Storage

¿Cómo está estructurado Azure Blob Storage? El almacenamiento realizado en este servicio es basado en la siguiente estructura.

Como se observa en las imágenes podemos tener varias cuentas, en nuestro caso podríamos decir que cada cuenta representará todo el contenido de UNA APLICACIÓN, a su vez cada cuenta puede tener varios contenedores, estos nos ofrecen la facilidad de crear una estructura de carpeta para nuestros archivos, y por último tenemos que un contenedor puede tener varios blobs que cada uno representaría los archivos que almacenemos.

Empecemos…

Ya que tenemos una idea general de como se almacena el contenido empecemos a ver la integración este servicio con nuestras aplicaciones Laravel.

Lo primero que necesitamos es una cuenta de almacenamiento en Microsoft Azure, puedes crearla en este enlace, incluso te ofrecen 200 dólares en crédito gratuito para que pruebes sus servicios de computación en Nube.

Configurando Azure en Laravel

Para iniciar debemos agregar el paquete microsoft/windowsazure a nuestras dependencias y para ello agregamos la siguiente línea al bloque require del archivo composer.json:

Luego guardamos y ejecutamos el comando composer update en la consola.

Despues de hecho esto ya podemos utilizar el paquete para manejar nuestras cuentas de almacenamiento en Azure.

Ahora vamos agregar nuestras credenciales al archivo .env de Laravel, esto lo hacemos para definir nuestra cadena de conexión con Azure y acceder a ella desde donde la necesitemos.

Para ello solo tenemos que agregar la siguiente línea

Ya realizado esto crearemos una conexión a nuestra cuenta, para ello solo debemos agregar la siguiente línea:

Con esto ya tenemos una conexión establecida con nuestra cuenta, la cual podemos utilizar para navegar por toda la estructura de contenido asociada a ello o crear nuevos elementos (Contenedores y Blobs) en esta cuenta.

Creando un contendedor

Tenemos 2 opciones para crear un contenedor, la primera es crearla en el Dashboard de Azure o crearlo desde nuestra aplicación. Pero nosotros lo vamos a crear desde nuestra aplicación.

Para utilizar las clases y métodos de Azure PHP SDK debemos agregar algunos use a la clase, estos son:

Proseguimos con la creación de nuestro contenedor.

Subiendo un archivo a Azure

Una vez tenemos nuestro contenedor donde se alojaran nuestros blob para subir un archivo a solo tenemos que hacer lo siguiente:

Listando los blobs de un contenedor

Si queremos acceder a todos los blobs que tiene un contenedor solo tenemos hacer la siguiente operación:

Hasta aquí mi primera contribución a Laraveles, me gustaría conocer que te parece, ¿Te animas a comentar? para dudas o sugerencias no duden en contactarme en twitter y Slack @scairon.

Comparte este artículo

Entra en la discusión y deja tu comentario

Veces