Použití značek indexu objektů blob ke správě a hledání dat pomocí JavaScriptu
Tento článek ukazuje, jak pomocí značek indexu objektů blob spravovat a vyhledávat data pomocí klientské knihovny azure Storage pro JavaScript.
Požadavky
- Příklady v tomto článku předpokládají, že už máte projekt nastavený tak, aby fungoval s klientskou knihovnou Azure Blob Storage pro JavaScript. Další informace o nastavení projektu, včetně instalace balíčku, importu modulů a vytvoření autorizovaného klientského objektu pro práci s datovými prostředky, najdete v tématu Začínáme se službou Azure Blob Storage a JavaScriptem.
- Autorizační mechanismus musí mít oprávnění pro práci se značkami indexu objektů blob. Další informace najdete v pokynech k autorizaci pro následující operace rozhraní 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.
Pokud chcete nastavit značky v době nahrání objektu blob, vytvořte Objekt BlobClient a pak použijte následující metodu:
Následující příklad provede tuto úlohu.
// A blob can have up to 10 tags.
//
// const tags = {
// project: 'End of month billing summary',
// reportOwner: 'John Doe',
// reportPresented: 'April 2022'
// }
async function setTags(containerClient, blobName, tags) {
// Create blob client from container client
const blockBlobClient = await containerClient.getBlockBlobClient(blobName);
// Set tags
await blockBlobClient.setTags(tags);
console.log(`uploading blob ${blobName}`);
}
Všechny značky můžete odstranit předáním prázdného objektu JSON do metody setTags.
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.
Pokud chcete získat značky, vytvořte Objekt blobClient a pak použijte následující metodu:
Následující příklad ukazuje, jak získat a iterovat značky objektu blob.
async function getTags(containerClient, blobName) {
// Create blob client from container client
const blockBlobClient = await containerClient.getBlockBlobClient(blobName);
// Get tags
const result = await blockBlobClient.getTags();
for (const tag in result.tags) {
console.log(`TAG: ${tag}: ${result.tags[tag]}`);
}
}
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 se dotazuje pomocí objektu JSON odeslaného jako řetězec. Vlastnosti nemusí obsahovat další řetězcové uvozovky, ale hodnoty vyžadují další řetězcové uvozovky.
V následující tabulce jsou uvedeny některé řetězce dotazu:
Řetězec dotazu pro značky (tagOdataQuery) | Popis |
---|---|
id='1' AND project='billing' |
Filtrování objektů blob napříč všemi kontejnery na základě těchto dvou vlastností |
owner='PhillyProject' AND createdOn >= '2021-12' AND createdOn <= '2022-06' |
Vyfiltrujte objekty blob ve všech kontejnerech na základě přísné hodnoty vlastnosti a owner rozsahu kalendářních dat pro createdOn vlastnost. |
@container = 'my-container' AND createdBy = 'Jill' |
Filtrovat podle kontejneru a konkrétní vlastnosti V tomto dotazu createdBy je shoda textu a nezoznačuje shodu autorizace prostřednictvím služby Active Directory. |
K vyhledání objektů blob vytvořte Objekt blobClient a pak použijte následující metodu:
Následující příklad najde všechny objekty blob odpovídající parametru tagOdataQuery.
async function findBlobsByQuery(blobServiceClient, tagOdataQuery) {
// page size
const maxPageSize = 10;
let i = 1;
let marker;
const listOptions = {
includeMetadata: true,
includeSnapshots: false,
includeTags: true,
includeVersions: false
};
let iterator = blobServiceClient.findBlobsByTags(tagOdataQuery, listOptions).byPage({ maxPageSize });
let response = (await iterator.next()).value;
// Prints blob names
if (response.blobs) {
for (const blob of response.blobs) {
console.log(`Blob ${i++}: ${blob.name} - ${JSON.stringify(blob.tags)}`);
}
}
// Gets next marker
marker = response.continuationToken;
// no more blobs
if (!marker) return;
// Passing next marker as continuationToken
iterator = blobServiceClient
.findBlobsByTags(tagOdataQuery, listOptions)
.byPage({ continuationToken: marker, maxPageSize });
response = (await iterator.next()).value;
// Prints blob names
if (response.blobs) {
for (const blob of response.blobs) {
console.log(`Blob ${i++}: ${blob.name} - ${JSON.stringify(blob.tags)}`);
}
}
}
Příklad výstupu této funkce ukazuje odpovídající objekty blob a jejich značky na základě kódu console.log v předchozí funkci:
Response |
---|
Objekt blob 1: set-tags-1650565920363-query-by-tag-blob-a-1.txt – {"createdOn":"2022-01","owner":"PhillyProject","project":"set-tags-1650565920363"} |
Zdroje informací
Další informace o použití značek indexů ke správě a hledání dat pomocí klientské knihovny azure Blob Storage pro JavaScript najdete v následujících zdrojích informací.
Operace rozhraní REST API
Sada Azure SDK pro JavaScript 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 JavaScriptu. 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)
Ukázky kódu
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