Použití značek indexu objektů blob ke správě a hledání dat pomocí .NET
Tento článek ukazuje, jak pomocí značek indexu objektů blob spravovat a vyhledávat data pomocí klientské knihovny Azure Storage pro .NET.
Požadavky
- Předplatné Azure – vytvoření bezplatného předplatného
- Účet úložiště Azure – Vytvoření účtu úložiště
- Nejnovější sada .NET SDK pro váš operační systém Nezapomeňte získat sadu SDK a ne modul runtime.
Nastavení prostředí
Pokud nemáte existující projekt, v této části se dozvíte, jak nastavit projekt pro práci s klientskou knihovnou Azure Blob Storage pro .NET. Kroky zahrnují instalaci balíčku, přidání using
direktiv a vytvoření autorizovaného objektu klienta. Podrobnosti najdete v tématu Začínáme se službou Azure Blob Storage a .NET.
Instalace balíčků
Z adresáře projektu nainstalujte balíčky pro klientské knihovny Azure Blob Storage a Azure Identity pomocí dotnet add package
příkazu. Balíček Azure.Identity je potřeba pro připojení bez hesla ke službám Azure.
dotnet add package Azure.Storage.Blobs
dotnet add package Azure.Identity
Přidání using
direktiv
Na začátek souboru kódu přidejte tyto using
direktivy:
using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;
Některé příklady kódu v tomto článku mohou vyžadovat další using
direktivy.
Vytvoření objektu klienta
Pokud chcete připojit aplikaci ke službě Blob Storage, vytvořte instanci BlobServiceClient. Následující příklad ukazuje, jak vytvořit objekt klienta pro DefaultAzureCredential
autorizaci:
public BlobServiceClient GetBlobServiceClient(string accountName)
{
BlobServiceClient client = new(
new Uri($"https://{accountName}.blob.core.windows.net"),
new DefaultAzureCredential());
return client;
}
Klienta služby můžete zaregistrovat pro injektáž závislostí v aplikaci .NET.
Můžete také vytvořit klientské objekty pro konkrétní kontejnery nebo objekty blob. Další informace o vytváření a správě klientských objektů najdete v tématu Vytváření a správa klientských objektů, které pracují s datovými prostředky.
Autorizace
Autorizační mechanismus musí mít potřebná oprávnění pro práci se značkami indexu objektů blob. K autorizaci pomocí Microsoft Entra ID (doporučeno) potřebujete vlastníka dat objektů blob služby Storage nebo vyšší předdefinovanou roli Azure RBAC. Další informace najdete v pokynech k autorizaci pro získání značek objektů blob (REST API), nastavení značek objektů blob (REST API) nebo hledání objektů blob podle značek (REST API).
O značkách indexu objektů blob
Značky indexu objektů blob kategorizují data v účtu úložiště pomocí atributů značek klíč-hodnota. Tyto značky se automaticky indexují a zveřejňují jako prohledávatelný multidimenzionální index, aby bylo možné snadno najít data. V tomto článku se dozvíte, jak nastavit, získat a najít data pomocí značek indexu objektů blob.
Značky indexu objektů blob nejsou podporované pro účty úložiště s povoleným hierarchickým oborem názvů. Další informace o funkci značky indexu objektů blob spolu se známými problémy a omezeními najdete v tématu Správa a vyhledání dat objektů blob pomocí značek indexu objektů blob.
Nastavení značek
Značky indexu můžete nastavit, pokud má váš kód autorizovaný přístup k datům objektů blob prostřednictvím jednoho z následujících mechanismů:
- Objekt zabezpečení, který má přiřazenou roli Azure RBAC s akcí Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write . Vlastník dat objektu blob služby Storage je předdefinovaná role, která zahrnuje tuto akci.
- Sdílený přístupový podpis (SAS) s oprávněním pro přístup ke značek objektu blob (
t
oprávnění) - Klíč účtu
Další informace najdete v tématu Nastavení značek indexu objektů blob.
Značky můžete nastavit pomocí některé z následujících metod:
Následující příklad provede tuto úlohu.
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);
}
Všechny značky můžete odstranit předáním prázdného [Dictionary] do metody SetTags nebo SetTagsAsync , jak je znázorněno v následujícím příkladu.
Dictionary<string, string> noTags = new Dictionary<string, string>();
await blobClient.SetTagsAsync(noTags);
Související články |
---|
Správa a vyhledání dat objektů blob v Azure pomocí značek indexu objektů blob |
Nastavení značek objektů blob (REST API) |
Získání značek
Pokud má váš kód autorizovaný přístup k datům objektů blob, můžete získat značky indexu prostřednictvím jednoho z následujících mechanismů:
- Objekt zabezpečení, který má přiřazenou roli Azure RBAC s akcí Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/read . Vlastník dat objektu blob služby Storage je předdefinovaná role, která zahrnuje tuto akci.
- Sdílený přístupový podpis (SAS) s oprávněním pro přístup ke značek objektu blob (
t
oprávnění) - Klíč účtu
Další informace najdete v tématu Získání a výpis značek indexu objektů blob.
Značky můžete získat pomocí některé z následujících metod:
Následující příklad provede tuto úlohu.
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}");
}
}
Filtrování a hledání dat pomocí značek indexu objektů blob
Pomocí značek indexu můžete vyhledávat a filtrovat data, pokud váš kód má autorizovaný přístup k datům objektů blob prostřednictvím jednoho z následujících mechanismů:
- Objekt zabezpečení, který má přiřazenou roli Azure RBAC s akcí Microsoft.Storage/storageAccounts/blobServices/containers/blobs/filter/action . Vlastník dat objektu blob služby Storage je předdefinovaná role, která zahrnuje tuto akci.
- Sdílený přístupový podpis (SAS) s oprávněním k filtrování objektů blob podle značek (
f
oprávnění) - Klíč účtu
Další informace najdete v tématu Hledání dat pomocí značek indexu objektů blob.
Poznámka:
K načtení předchozích verzí nemůžete použít značky indexu. Značky pro předchozí verze se nepředávají do indexového modulu objektů blob. Další informace naleznete v tématu Podmínky a známé problémy.
Data můžete najít pomocí některé z následujících metod:
Následující příklad najde všechny objekty blob označené datem, které spadá mezi konkrétní rozsah.
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}");
}
}
Zdroje informací
Další informace o použití značek indexů ke správě a hledání dat pomocí klientské knihovny azure Blob Storage pro .NET najdete v následujících zdrojích informací.
Operace rozhraní REST API
Sada Azure SDK pro .NET obsahuje knihovny, které jsou postavené na rozhraní Azure REST API a umožňují interakci s operacemi rozhraní REST API prostřednictvím známých paradigmat .NET. Metody klientské knihovny pro správu a používání značek indexu objektů blob používají následující operace rozhraní REST API:
- Získání značek objektů blob (REST API)
- Nastavení značek objektů blob (REST API)
- Vyhledání objektů blob podle značek (REST API)
Prostředky klientské knihovny
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro