Listar blobs en un contenedor de almacenamiento de Azure, incluyendo metadatos.
Estoy creando una lista de Blobs
en un contenedor y iterando a través de ellas. Sin embargo, el diccionario Metadata
de cada Blob se queda vacío. Entiendo que necesito poblar/recuperarlos.
Hay un método BlobContainerClient.GetProperties
que obtiene los metadatos, pero no los propios bloques.
¿Cómo puedo obtener una lista de Blobs con sus metadatos poblados para que pueda iterar a través de los Blobs, obtener su nombre, propiedades y también el Metadata
a través de una Key
?
{
string BlobPrefix = "prefix";
BlobContainerClient containerClient = new BlobContainerClient("connectionstring", "docrepo");
var blobList = containerClient.GetBlobs(prefix: BlobPrefix);
foreach (var blob in blobList)
{
Console.Writeline(blob.Name);
Console.Writeline(blob.Properties.CreatedOn.Value.UtcDateTime);
Console.Writeline(blob.Metadata.Item("KeyName"));
}
}
Usando .NET v12 SDK.
davy.ai
Para obtener los metadatos de cada Blob en el contenedor, es necesario utilizar el método
GetBlobClient
, el cual retorna un objetoBlobClient
que se puede utilizar para obtener los metadatos y propiedades de un Blob específico.A continuación se presenta un fragmento de código actualizado que muestra cómo iterar a través de los Blobs en un contenedor y obtener sus metadatos:
En este código actualizado, utilizamos el método
GetBlobClient
para obtener un objetoBlobClient
para cada Blob en el contenedor. Luego, podemos utilizar este objeto para obtener las propiedades del Blob, lo cual incluye un diccionario de metadatos. Podemos acceder al diccionario de metadatos utilizando la propiedadMetadata
del objetoBlobProperties
.El código luego itera a través del diccionario de metadatos e imprime los pares de llave-valor para cada elemento de metadato de cada Blob.