Uso de etiquetas de índice de blobs para administrar y buscar datos con .NET
En este artículo se muestra cómo usar etiquetas de índice en los blobs para administrar y buscar datos mediante la biblioteca cliente de Azure Storage para .NET.
Requisitos previos
- Una suscripción a Azure: cree una cuenta gratuita
- Una cuenta de Azure Storage: cree una cuenta de almacenamiento
- El SDK de .NET más reciente para su sistema operativo. Asegúrese de obtener el SDK y no el entorno de ejecución.
Configurar el entorno
Si no tiene un proyecto existente, esta sección le muestra cómo configurar un proyecto para que funcione con la biblioteca de clientes Azure Blob Storage para .NET. Los pasos incluyen la instalación del paquete, la adición de directivas using
y la creación de un objeto cliente autorizado. Para más información, consulteIntroducción a Azure Blob Storage y .NET.
Instalar paquetes
En el directorio del proyecto, instale los paquetes para las bibliotecas cliente de Azure Blob Storage y Azure Identity mediante el comando dotnet add package
. El paquete Azure.Identity es necesario para las conexiones sin contraseña a los servicios de Azure.
dotnet add package Azure.Storage.Blobs
dotnet add package Azure.Identity
Agregue directivas using
.
Agregue estas directivas using
al principio del archivo de código:
using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;
Algunos ejemplos de código de este artículo pueden requerir using
directivas adicionales.
Creación de un objeto de cliente
Para conectar una aplicación a Blob Storage, cree una instancia de BlobServiceClient. En el ejemplo siguiente se muestra cómo crear un objeto de cliente mediante DefaultAzureCredential
para la autorización:
public BlobServiceClient GetBlobServiceClient(string accountName)
{
BlobServiceClient client = new(
new Uri($"https://{accountName}.blob.core.windows.net"),
new DefaultAzureCredential());
return client;
}
También puede registrar un cliente de servicio para la inserción de dependencias en una aplicación .NET. Para obtener más información sobre cómo crear y administrar objetos de cliente, consulte Crear y administrar objetos de cliente que interactúan con los recursos de datos.
Authorization
El mecanismo de autorización debe tener los permisos necesarios para trabajar con etiquetas de índice de blobs. Para la autorización con Microsoft Entra ID (recomendado), se necesita el rol integrado de RBAC de Azure de propietario de datos de Storage Blob o superior. Para más información, consulte la guía de autorización para obtener etiquetas de blobs (API REST), establecer etiquetas de blob (API REST) o buscar blobs por etiquetas (API REST).
Escribir etiquetas de índice de blobs
Las etiquetas de índice de blobs clasifican los datos de la cuenta de almacenamiento mediante atributos de etiqueta clave-valor. Estas etiquetas se indexan y se exponen automáticamente como un índice multidimensional que se puede buscar para encontrar fácilmente los datos. En este artículo se muestra cómo establecer, obtener y buscar datos mediante etiquetas de índice de blobs.
Las etiquetas de índice de blobs no se admiten para las cuentas de almacenamiento con el espacio de nombres jerárquico habilitado. Para obtener más información sobre la característica de etiqueta de índice de blobs junto con las limitaciones y los problemas conocidos, consulte Administración y búsqueda de datos de Azure Blob con etiquetas de índice de blobs.
Definición de etiquetas
Puede establecer etiquetas de índice si el código tiene el acceso autorizado a los datos de los blobs mediante uno de los siguientes mecanismos:
- Entidad de seguridad asignada a un rol RBAC de Azure con la acción Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write. El propietario de datos de blobs de Storage es un rol integrado que incluye esta acción.
- Firma de acceso compartido (SAS) con permiso para acceder a las etiquetas del blob (permiso
t
) - Clave de cuenta
Para más información, vea Configuración de etiquetas de índice de blobs.
Puede establecer etiquetas mediante cualquiera de los métodos siguientes:
En el siguiente ejemplo, se lleva a cabo esta tarea.
public static async Task SetTags(BlobClient blobClient)
{
Dictionary<string, string> tags =
new Dictionary<string, string>
{
{ "Sealed", "false" },
{ "Content", "image" },
{ "Date", "2020-04-20" }
};
await blobClient.SetTagsAsync(tags);
}
Puede eliminar todas las etiquetas pasando un elemento [Dictionary] vacío al método SetTags o SetTagsAsync, como se muestra en el ejemplo siguiente.
Dictionary<string, string> noTags = new Dictionary<string, string>();
await blobClient.SetTagsAsync(noTags);
Artículos relacionados |
---|
Administración y búsqueda de datos de Azure Blob con etiquetas de índice de blobs |
Set Blob Tags (API REST) |
Obtener etiquetas
Puede obtener etiquetas de índice si el código tiene el acceso autorizado a los datos de los blobs mediante uno de los siguientes mecanismos:
- Entidad de seguridad asignada a un rol RBAC de Azure con la acción Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/read. El propietario de datos de blobs de Storage es un rol integrado que incluye esta acción.
- Firma de acceso compartido (SAS) con permiso para acceder a las etiquetas del blob (permiso
t
) - Clave de cuenta
Para más información, consulte Obtención y enumeración de etiquetas de índice de blobs.
Puede obtener etiquetas mediante cualquiera de los métodos siguientes:
En el siguiente ejemplo, se lleva a cabo esta tarea.
public static async Task GetTags(BlobClient blobClient)
{
Response<GetBlobTagResult> tagsResponse = await blobClient.GetTagsAsync();
foreach (KeyValuePair<string, string> tag in tagsResponse.Value.Tags)
{
Console.WriteLine($"{tag.Key}={tag.Value}");
}
}
Filtrado y búsqueda de datos con etiquetas de índice de blobs
Puede usar etiquetas de índice para buscar y filtrar datos si el código tiene el acceso autorizado a los datos de los blobs mediante uno de los siguientes mecanismos:
- Entidad de seguridad asignada a un rol RBAC de Azure con la acción Microsoft.Storage/storageAccounts/blobServices/containers/blobs/filter/action. El propietario de datos de blobs de Storage es un rol integrado que incluye esta acción.
- Firma de acceso compartido (SAS) con permiso para filtrar blobs por etiquetas (permiso
f
) - Clave de cuenta
Para más información, consulte Búsqueda de datos mediante etiquetas de índice de blobs.
Nota:
No se pueden utilizar etiquetas de índice para recuperar versiones anteriores. Las etiquetas de las versiones anteriores no se pasan al motor de índices de blobs. Para más información, consulte Condiciones y problemas conocidos.
Puede buscar datos mediante cualquiera de los métodos siguientes:
En el ejemplo siguiente, se buscan todos los blobs etiquetados con una fecha que se encuentra en un intervalo específico.
public static async Task FindBlobsbyTags(BlobServiceClient serviceClient)
{
string query = @"""Date"" >= '2020-04-20' AND ""Date"" <= '2020-04-30'";
// Find Blobs given a tags query
Console.WriteLine("Find Blob by Tags query: " + query + Environment.NewLine);
List<TaggedBlobItem> blobs = new List<TaggedBlobItem>();
await foreach (TaggedBlobItem taggedBlobItem in serviceClient.FindBlobsByTagsAsync(query))
{
blobs.Add(taggedBlobItem);
}
foreach (var filteredBlob in blobs)
{
Console.WriteLine($"BlobIndex result: ContainerName= {filteredBlob.BlobContainerName}, " +
$"BlobName= {filteredBlob.BlobName}");
}
}
Recursos
Para más información sobre cómo usar las etiquetas de índice para administrar y buscar datos mediante la biblioteca cliente de Azure Blob Storage para .NET, consulte los siguientes recursos.
Operaciones de API REST
El SDK de Azure para .NET contiene bibliotecas que se crean a partir de la API REST de Azure, lo que le permite interactuar con las operaciones de API REST a través de paradigmas conocidos de .NET. Los métodos de biblioteca cliente para administrar y usar etiquetas de índice de blobs usan las siguientes operaciones de la API REST:
- Get Blob Tags (API REST)
- Set Blob Tags (API REST)
- Find Blobs by Tags (API REST)
Recursos de la biblioteca cliente
- Documentación de referencia de la biblioteca cliente
- Código fuente de la biblioteca del cliente
- Paquete (NuGet)
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Proximamente: Ao longo de 2024, retiraremos gradualmente GitHub Issues como mecanismo de comentarios sobre o contido e substituirémolo por un novo sistema de comentarios. Para obter máis información, consulte:Enviar e ver os comentarios