Inicio rápido: Biblioteca cliente de Azure Blob Storage v12 con Xamarin
Introducción a la biblioteca cliente de Azure Blob Storage v12 con Xamarin. Azure Blob Storage es la solución de almacenamiento de objetos de Microsoft para la nube. Siga los pasos para instalar el paquete y probar el código de ejemplo para realizar tareas básicas. Blob Storage está optimizado para el almacenamiento de cantidades masivas de datos no estructurados.
La biblioteca cliente de Azure Blob Storage v12 con Xamarin se puede usar para:
- Crear un contenedor
- Cargar un blob en Azure Storage
- Enumerar todos los blobs de un contenedor
- Descargar el blob en un dispositivo
- Eliminación de un contenedor
Vínculos de referencia:
Requisitos previos
- Una suscripción a Azure: cree una cuenta gratuita
- Una cuenta de Azure Storage: cree una cuenta de almacenamiento
- Visual Studio con la carga de trabajo de desarrollo para dispositivos móviles para .NET instalada o Visual Studio para Mac
Instalación
En esta sección se explica cómo preparar un proyecto para usarlo con la biblioteca cliente de Azure Blob Storage v12 con Xamarin.
Creación del proyecto
- Abra Visual Studio y cree una aplicación de Forms en blanco.
- Asígnele un nombre: BlobQuickstartV12
Instalar el paquete
- Haga clic con el botón derecho en la solución en el panel del Explorador de soluciones y seleccione Administrar paquetes NuGet para la solución.
- Busque Azure.Storage.Blobs e instale la versión estable más reciente en todos los proyectos de su solución.
Instalación del marco de la aplicación
En el directorio BlobQuickstartV12:
- Abra el archivo MainPage.xaml en el editor.
- Quite todo lo que haya entre los elementos
<ContentPage></ContentPage>y reemplácelo por lo siguiente:
<StackLayout HorizontalOptions="Center" VerticalOptions="Center">
<Button x:Name="uploadButton" Text="Upload Blob" Clicked="Upload_Clicked" IsEnabled="False"/>
<Button x:Name="listButton" Text="List Blobs" Clicked="List_Clicked" IsEnabled="False" />
<Button x:Name="downloadButton" Text="Download Blob" Clicked="Download_Clicked" IsEnabled="False" />
<Button x:Name="deleteButton" Text="Delete Container" Clicked="Delete_Clicked" IsEnabled="False" />
<Label Text="" x:Name="resultsLabel" HorizontalTextAlignment="Center" Margin="0,20,0,0" TextColor="Red" />
</StackLayout>
Copia de las credenciales desde Azure Portal
Cuando la aplicación de ejemplo realiza una solicitud a Azure Storage, debe estar autorizada. Para autorizar una solicitud, agregue a la aplicación las credenciales de la cuenta de almacenamiento en forma de cadena de conexión. Para ver las credenciales de la cuenta de almacenamiento, siga estos pasos:
Inicie sesión en Azure Portal.
Busque su cuenta de almacenamiento.
En la sección Configuración de la información general de la cuenta de almacenamiento, seleccione Claves de acceso. Aquí puede ver las claves de acceso de la cuenta, así como la cadena de conexión completa de cada clave.
Busque el valor de Cadena de conexión en key1 y seleccione el botón Copiar para copiar la cadena de conexión. En el paso siguiente, agregará el valor de la cadena de conexión a una variable de entorno.

Configuración de la cadena de conexión de almacenamiento.
Una vez que haya copiado la cadena de conexión, establézcala en una variable de nivel de clase en el archivo MainPage.xaml.cs. Abra MainPaage.xaml.cs y busque la variable storageConnectionString. Reemplace <yourconnectionstring> por la cadena de conexión real.
Este es el código:
string storageConnectionString = "<yourconnectionstring>";
Modelo de objetos
Azure Blob Storage está optimizado para el almacenamiento de cantidades masivas de datos no estructurados. Los datos no estructurados son datos que no cumplen un modelo de datos o definición concreta, como texto o datos binarios. Blob Storage ofrece tres tipos de recursos:
- La cuenta de almacenamiento
- Un contenedor en la cuenta de almacenamiento
- Un blob en el contenedor
En el siguiente diagrama se muestra la relación entre estos recursos.

Use las siguientes clases de .NET para interactuar con estos recursos:
- BlobServiceClient: La clase
BlobServiceClientpermite manipular recursos de Azure Storage y contenedores de blobs. - BlobContainerClient: La clase
BlobContainerClientpermite manipular contenedores de Azure Storage y sus blobs. - BlobClient: La clase
BlobClientpermite manipular los blobs de Azure Storage. - BlobDownloadInfo: La clase
BlobDownloadInforepresenta las propiedades y el contenido devuelto por la descarga de un blob.
Ejemplos de código
Estos fragmentos de código de ejemplo muestran cómo realizar las siguientes tareas con la biblioteca cliente de Azure Blob Storage para .NET en una aplicación Xamarin.Forms:
- Creación de variables de nivel de clase
- Creación de un contenedor
- Carga de los blobs en un contenedor
- Enumeración de los blobs de un contenedor
- Descarga de los blobs
- Eliminación de un contenedor
Creación de variables de nivel de clase
El código siguiente declara varias variables de nivel de clase. Necesitan comunicarse con Azure Blob Storage en todo este ejemplo.
Estas variables se suman a la cadena de conexión de la cuenta de almacenamiento establecida en la sección Configuración de una cadena de conexión de almacenamiento.
Agregue este código como variables de nivel de clase dentro del archivo MainPage.xaml.cs:
string storageConnectionString = "{set in the Configure your storage connection string section}";
string fileName = $"{Guid.NewGuid()}-temp.txt";
BlobServiceClient client;
BlobContainerClient containerClient;
BlobClient blobClient;
Crear un contenedor
Decida un nombre para el nuevo contenedor. El código siguiente anexa un valor de GUID al nombre de contenedor para asegurarse de que sea único.
Importante
Los nombres de contenedor deben estar en minúsculas. Para más información acerca de los contenedores de nomenclatura y los blobs, consulte Naming and Referencing Containers, Blobs, and Metadata (Asignación de nombres y realización de referencias a contenedores, blobs y metadatos).
Cree una instancia de la clase BlobServiceClient. A continuación, llame al método CreateBlobContainerAsync para crear el contenedor en la cuenta de almacenamiento.
Agregue este código al archivo MainPage.xaml.cs:
protected async override void OnAppearing()
{
string containerName = $"quickstartblobs{Guid.NewGuid()}";
client = new BlobServiceClient(storageConnectionString);
containerClient = await client.CreateBlobContainerAsync(containerName);
resultsLabel.Text = "Container Created\n";
blobClient = containerClient.GetBlobClient(fileName);
uploadButton.IsEnabled = true;
}
Carga de los blobs en un contenedor
El siguiente fragmento de código:
- Crea una
MemoryStreamde texto. - Carga el texto en un blob, para lo que llama a la función UploadAsync de la clase BlobContainerClient y utiliza tanto el nombre de archivo como el
MemoryStreamde texto. Esta operación crea el blob si no existe y lo sobrescribe, en caso de que ya exista.
Agregue este código al archivo MainPage.xaml.cs:
async void Upload_Clicked(object sender, EventArgs e)
{
using MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes("Hello World!"));
await containerClient.UploadBlobAsync(fileName, memoryStream);
resultsLabel.Text += "Blob Uploaded\n";
uploadButton.IsEnabled = false;
listButton.IsEnabled = true;
}
Enumerar los blobs de un contenedor
Enumere los blobs en el contenedor llamando al método GetBlobsAsync. En este caso, solo se ha agregado un blob al contenedor, por lo que la operación de enumeración devuelve simplemente dicho blob.
Agregue este código al archivo MainPage.xaml.cs:
async void List_Clicked(object sender, EventArgs e)
{
await foreach (BlobItem blobItem in containerClient.GetBlobsAsync())
{
resultsLabel.Text += blobItem.Name + "\n";
}
listButton.IsEnabled = false;
downloadButton.IsEnabled = true;
}
Descargar blobs
Llame al método DownloadToAsync para descargar el blob creado previamente. El código de ejemplo copia la representación de Stream del blob primero en un MemoryStream y, después, en un StreamReader para que se pueda mostrar el texto.
Agregue este código al archivo MainPage.xaml.cs:
async void Download_Clicked(object sender, EventArgs e)
{
BlobDownloadInfo downloadInfo = await blobClient.DownloadAsync();
using MemoryStream memoryStream = new MemoryStream();
await downloadInfo.Content.CopyToAsync(memoryStream);
memoryStream.Position = 0;
using StreamReader streamReader = new StreamReader(memoryStream);
resultsLabel.Text += "Blob Contents: \n";
resultsLabel.Text += await streamReader.ReadToEndAsync();
resultsLabel.Text += "\n";
downloadButton.IsEnabled = false;
deleteButton.IsEnabled = true;
}
Eliminación de un contenedor
El código siguiente limpia los recursos que creó; para ello, elimina todo el contenedor con DeleteAsync.
En primer lugar, la aplicación solicita confirmación antes de eliminar el blob y el contenedor. Esta es una buena oportunidad para verificar que los recursos se han creado correctamente antes de eliminarlos.
Agregue este código al archivo MainPage.xaml.cs:
async void Delete_Clicked(object sender, EventArgs e)
{
var deleteContainer = await Application.Current.MainPage.DisplayAlert("Delete Container",
"You are about to delete the container proceeed?", "OK", "Cancel");
if (deleteContainer == false)
return;
await containerClient.DeleteAsync();
resultsLabel.Text += "Container Deleted";
deleteButton.IsEnabled = false;
}
Ejecución del código
Cuando la aplicación se inicie, lo primero que hará es crear el contenedor tal como aparece. Luego, tendrá que hacer clic en los botones para cargar, enumerar y descargar los blobs, así como para eliminar el contenedor.
Para ejecutar la aplicación en Windows, presione F5. Para ejecutar la aplicación en Mac, presione Cmd+Enter.
La aplicación escribe en la pantalla después de cada operación. La salida de la aplicación es similar a la del ejemplo siguiente:
Container Created
Blob Uploaded
98d9a472-8e98-4978-ba4f-081d69d2e6f8-temp.txt
Blob Contents:
Hello World!
Container Deleted
Antes de comenzar el proceso de limpieza, compruebe que la salida del contenido del blob en la pantalla coincide con el valor que se cargó.
Después de comprobar los valores, confirme la solicitud de eliminación del contenedor y finalice la demostración.
Pasos siguientes
En este inicio rápido, ha aprendido a cargar, descargar y enumerar blobs mediante una biblioteca cliente de Azure Blob Storage v12 con Xamarin.
Para ver las aplicaciones de ejemplo de Blob Storage, siga estos pasos:
- Para ver tutoriales, ejemplos, inicios rápido y otra documentación, visite Azure para desarrolladores para dispositivos móviles.
- Para más información sobre Xamarin, consulte Introducción a Xamarin.