Tutorial: Carga de datos de imagen en la nube con Azure Storage
Este tutorial es la primera parte de una serie. En este tutorial, aprenderá a implementar una aplicación web. La aplicación web usa la biblioteca cliente de Azure Blob Storage para cargar imágenes en una cuenta de almacenamiento. Cuando haya terminado, tendrá una aplicación web que almacena y muestra imágenes desde Azure Storage.
En la primera parte de la serie, se aprende a:
- Crear una cuenta de almacenamiento
- Crear un contenedor y establecer permisos
- Recuperar una clave de acceso
- Implementar una aplicación web en Azure
- Configuración de aplicaciones
- Interactuar con la aplicación web
Requisitos previos
Para completar este tutorial, necesitará una suscripción de Azure. Cree una cuenta gratuita antes de comenzar.
Uso de Azure Cloud Shell
En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador. Puede usar Bash o PowerShell con Cloud Shell para trabajar con los servicios de Azure. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.
Para iniciar Azure Cloud Shell:
| Opción | Ejemplo o vínculo |
|---|---|
| Seleccione Pruébelo en la esquina superior derecha de un bloque de código. Solo con seleccionar Pruébelo no se copia automáticamente el código en Cloud Shell. | ![]() |
| Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador. | ![]() |
| Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal. | ![]() |
Para ejecutar el código de este artículo en Azure Cloud Shell:
Inicie Cloud Shell.
Seleccione el botón Copiar de un bloque de código para copiar el código.
Pegue el código en la sesión de Cloud Shell. Para ello, seleccione Ctrl+Mayús+V en Windows y Linux, o bien seleccione Cmd+Mayús+V en macOS.
Seleccione Entrar para ejecutar el código.
Para instalar y usar la CLI localmente, ejecute la versión 2.0.4 de la CLI de Azure o una posterior. Ejecute az --version para encontrar la versión. Si necesita instalarla o actualizarla, consulte Instalación de la CLI de Azure.
Crear un grupo de recursos
En el ejemplo siguiente se crea un grupo de recursos denominado myResourceGroup.
Cree un grupo de recursos con el comando New-AzResourceGroup. Un grupo de recursos de Azure es un contenedor lógico en el que se implementan y se administran los recursos de Azure.
New-AzResourceGroup -Name myResourceGroup -Location southeastasia
Crear una cuenta de almacenamiento
En el ejemplo se cargan imágenes en un contenedor de blobs en una cuenta de Azure Storage. Una cuenta de almacenamiento proporciona un espacio de nombres único para almacenar y tener acceso a los objetos de datos de almacenamiento de Azure.
Importante
En la parte 2 del tutorial, usará Azure Event Grid con Blob Storage. Asegúrese de crear la cuenta de almacenamiento en una región de Azure que admita Event Grid. Para obtener una lista de las regiones admitidas, consulte Productos de Azure por región.
En el siguiente comando, sustituya su propio nombre único global por la cuenta de Blob Storage donde vea el marcador de posición <blob_storage_account>.
Cree una cuenta de almacenamiento en el grupo de recursos que ha creado con el comando New-AzStorageAccount.
$blobStorageAccount="<blob_storage_account>"
New-AzStorageAccount -ResourceGroupName myResourceGroup -Name $blobStorageAccount -SkuName Standard_LRS -Location southeastasia -Kind StorageV2 -AccessTier Hot
Creación de contenedores de almacenamiento de blobs
La aplicación usa dos contenedores en la cuenta de Blob Storage. Los contenedores son similares a las carpetas y almacenan blobs. El contenedor de imágenes es donde la aplicación carga imágenes a alta resolución. En una parte posterior de la serie, una función de Azure carga imágenes en miniatura con tamaño cambiado en *thumbnails.
El acceso público del contenedor de imágenes está establecido en off. El acceso público del contenedor de miniaturas está establecido en container. La configuración de acceso público container permite ver las miniaturas a los usuarios que visitan la página web.
Obtenga la clave de la cuenta de almacenamiento mediante el comando Get-AzStorageAccountKey. A continuación, use esta clave para crear dos contenedores con el comando New-AzStorageContainer.
$blobStorageAccountKey = (Get-AzStorageAccountKey -ResourceGroupName myResourceGroup -Name $blobStorageAccount).Key1
$blobStorageContext = New-AzStorageContext -StorageAccountName $blobStorageAccount -StorageAccountKey $blobStorageAccountKey
New-AzStorageContainer -Name images -Context $blobStorageContext
New-AzStorageContainer -Name thumbnails -Permission Container -Context $blobStorageContext
Anote el nombre y la clave de la cuenta de almacenamiento de blobs. La aplicación de ejemplo usa esta configuración para conectarse a la cuenta de almacenamiento y cargar las imágenes.
Creación de un plan de App Service
Un plan de App Service especifica la ubicación, el tamaño y las características de la granja de servidores web que hospeda la aplicación.
En el siguiente ejemplo se crea un plan de App Service denominado myAppServicePlan con el plan de tarifa Gratis:
Cree un plan de App Service con el comando New-AzAppServicePlan.
New-AzAppServicePlan -ResourceGroupName myResourceGroup -Name myAppServicePlan -Tier "Free"
Creación de una aplicación web
La aplicación web proporciona un espacio de hospedaje para el código de la aplicación de ejemplo que se implementó desde el repositorio de ejemplo de GitHub.
En el siguiente comando, reemplace <web_app> por un nombre único. Los caracteres válidos son a-z, 0-9 y -. Si el valor de <web_app> no es único, recibirá el mensaje de error: Ya existe un sitio web con el nombre especificado <web_app>. La dirección URL predeterminada de la aplicación web es https://<web_app>.azurewebsites.net.
Cree una aplicación web en el plan de App Service myAppServicePlan con el comando New-AzWebApp.
$webapp="<web_app>"
New-AzWebApp -ResourceGroupName myResourceGroup -Name $webapp -AppServicePlan myAppServicePlan
Implementación de la aplicación de ejemplo desde el repositorio de GitHub
App Service admite varias maneras de implementar contenido en una aplicación web. En este tutorial, se implementa la aplicación web desde un repositorio de ejemplo público de GitHub. Configure la implementación de GitHub local en la aplicación web con el comando az webapp deployment source config.
El proyecto de ejemplo contiene una aplicación MVC de ASP.NET. La aplicación acepta una imagen, la guarda en una cuenta de almacenamiento y muestra imágenes de un contenedor de miniaturas. La aplicación web usa los espacios de nombres Azure.Storage, Azure.Storage.Blobsy Azure.Storage.Blobs.Models para interactuar con el servicio Azure Storage.
az webapp deployment source config --name $webapp --resource-group myResourceGroup \
--branch master --manual-integration \
--repo-url https://github.com/Azure-Samples/storage-blob-upload-from-webapp
az webapp deployment source config --name $webapp --resource-group myResourceGroup `
--branch master --manual-integration `
--repo-url https://github.com/Azure-Samples/storage-blob-upload-from-webapp
Configurar aplicaciones web
La aplicación web de ejemplo usa las API de Azure Storage para .NET para cargar imágenes. Las credenciales de la cuenta de Storage se establecen en la configuración de aplicación de la aplicación web. Agregue la configuración de aplicación a la aplicación implementada con el comando az webapp config appsettings set o New-AzStaticWebAppSetting.
az webapp config appsettings set --name $webapp --resource-group myResourceGroup \
--settings AzureStorageConfig__AccountName=$blobStorageAccount \
AzureStorageConfig__ImageContainer=images \
AzureStorageConfig__ThumbnailContainer=thumbnails \
AzureStorageConfig__AccountKey=$blobStorageAccountKey
az webapp config appsettings set --name $webapp --resource-group myResourceGroup `
--settings AzureStorageConfig__AccountName=$blobStorageAccount `
AzureStorageConfig__ImageContainer=images `
AzureStorageConfig__ThumbnailContainer=thumbnails `
AzureStorageConfig__AccountKey=$blobStorageAccountKey
Una vez que la aplicación web está implementada y configurada, puede probar la funcionalidad de carga de imágenes en la aplicación.
Carga de una imagen
Para probar la aplicación web, vaya a la dirección URL de la aplicación publicada. La dirección URL predeterminada de la aplicación web es https://<web_app>.azurewebsites.net.
Seleccione la región Upload photos (Cargar fotos) para especificar y cargar un archivo, o bien arrastre un archivo a dicha región. La imagen desaparece si se carga correctamente. La sección Miniaturas generadas permanecerá vacía hasta que la probemos más adelante en este tutorial.

En el código de ejemplo, la tarea UploadFileToStorage del archivo Storagehelper.cs se usa para cargar las imágenes en el contenedor de imágenes de la cuenta de almacenamiento mediante el método UploadAsync. El siguiente código de ejemplo contiene la tarea UploadFileToStorage.
public static async Task<bool> UploadFileToStorage(Stream fileStream, string fileName,
AzureStorageConfig _storageConfig)
{
// Create a URI to the blob
Uri blobUri = new Uri("https://" +
_storageConfig.AccountName +
".blob.core.windows.net/" +
_storageConfig.ImageContainer +
"/" + fileName);
// Create StorageSharedKeyCredentials object by reading
// the values from the configuration (appsettings.json)
StorageSharedKeyCredential storageCredentials =
new StorageSharedKeyCredential(_storageConfig.AccountName, _storageConfig.AccountKey);
// Create the blob client.
BlobClient blobClient = new BlobClient(blobUri, storageCredentials);
// Upload the file
await blobClient.UploadAsync(fileStream);
return await Task.FromResult(true);
}
En la tarea anterior se usan las clases y los métodos siguientes:
| Clase | Método |
|---|---|
| Uri | Constructor Uri |
| StorageSharedKeyCredential | Constructor StorageSharedKeyCredential (cadena, cadena) |
| BlobClient | UploadAsync |
Comprobación de que la imagen se muestra en la cuenta de almacenamiento
Inicie sesión en Azure Portal. En el menú izquierdo, seleccione Cuentas de almacenamiento y seleccione el nombre de la cuenta de almacenamiento. Seleccione Contenedores y, a continuación, seleccione el contenedor images.
Compruebe que la imagen se muestra en el contenedor.

Prueba de la vista de miniaturas
Para probar la vista de miniaturas, cargará una imagen en el contenedor de miniaturas para comprobar que la aplicación puede leer el contenedor de miniaturas.
Inicie sesión en Azure Portal. En el menú izquierdo, seleccione Cuentas de almacenamiento y seleccione el nombre de la cuenta de almacenamiento. Seleccione Contenedores y, a continuación, seleccione el contenedor thumbnails. Seleccione Cargar para abrir el panel Cargar blob.
Elija un archivo mediante el selector de archivos y seleccione Cargar.
Vuelva a la aplicación para comprobar que la imagen cargada en el contenedor thumbnails está visible.
En la segunda parte de la serie, automatizará la creación de imágenes en miniatura para que no tenga necesidad de esta imagen. En el contenedor thumbnails, seleccione la imagen que descargó y elija Eliminar para eliminarla.
Puede habilitar Content Delivery Network (CDN) para almacenar en caché el contenido de una cuenta de almacenamiento de Azure. Para más información, consulte Integración de una cuenta de Azure Storage con Azure CDN.
Pasos siguientes
En la primera parte de la serie, aprendió a configurar una aplicación web para interactuar con el almacenamiento.
Siga con la parte dos de la serie para aprender a usar Event Grid para desencadenar una función de Azure que cambie el tamaño de una imagen.




