Blobindextags zum Verwalten und Suchen von Daten mit TypeScript verwenden
In diesem Artikel wird beschrieben, wie Blobindextags zum Verwalten und Suchen von Daten mithilfe der Azure Storage-Clientbibliothek für JavaScript verwendet werden.
Voraussetzungen
- Bei den Beispielen in diesem Artikel wird davon ausgegangen, dass Sie bereits ein Projekt für die Arbeit mit der Azure Blob Storage-Clientbibliothek für JavaScript eingerichtet haben. Informationen zum Einrichten Ihres Projekts, einschließlich der Paketinstallation, dem Importieren von Modulen und dem Erstellen eines autorisierten Clientobjekts für die Verwendung mit Datenressourcen, finden Sie unter Erste Schritte mit Azure Blob Storage und TypeScript.
- Der Autorisierungsmechanismus muss über Berechtigungen zum Arbeiten mit Blobindextags verfügen. Weitere Informationen finden Sie im Autorisierungsleitfaden für die folgenden REST-API-Vorgänge:
Informationen zu Blobindextags
Blobindextags kategorisieren Daten in Ihrem Speicherkonto mithilfe von Schlüssel-Wert-Tagattributen. Diese Tags werden automatisch indiziert und als durchsuchbarer mehrdimensionaler Index verfügbar gemacht, um Daten einfach finden zu können. In diesem Artikel wird erörtert, wie Sie Daten mithilfe von Blobindextags festlegen, abrufen und suchen.
Blobindextags werden für Speicherkonten mit aktivierten hierarchischen Namespaces nicht unterstützt. Weitere Informationen zu diesem Blobindextag sowie zu bekannten Problemen und Einschränkungen finden Sie unter Verwalten und Finden von Azure-Blobdaten mit Blobindextags (Vorschau).
Festlegen von Tags
Sie können Indextags festlegen, wenn Ihr Code autorisierten Zugriff auf Blobdaten über einen der folgenden Mechanismen hat:
- Sicherheitsprinzipal, dem mit der Aktion Microsoft.Storage/storageAccounts/blobServices/containers/blobs/blobs/tags/write eine Azure RBAC-Rolle zugewiesen ist. Der Besitzer von Speicherblobdaten ist eine integrierte Rolle, welche diese Aktion umfasst.
- Shared Access Signature (SAS) mit Zugriffsberechtigung für die Tags des Blobs (
t
-Berechtigung) - Kontoschlüssel
Weitere Informationen finden Sie unter Festlegen von Blobindextags.
Um die Tags zum Zeitpunkt des Hochladens des Blob festzulegen, erstellen Sie einen BlobClient und verwenden dann die folgende Methode:
Im folgenden Beispiel wird diese Aufgabe ausgeführt.
export async function setBlobTags(
blockBlobClient: BlockBlobClient,
tags: Tags
): Promise<void> {
// Set tags
const result = await blockBlobClient.setTags(tags);
if (result.errorCode) throw Error(result.errorCode);
console.log(`tags set for ${blockBlobClient.name}`);
}
Sie können alle Tags löschen, indem Sie ein leeres JSON-Objekt in die setTags-Methode übergeben.
Verwandte Artikel |
---|
Verwalten und Finden von Azure-Blobdaten mit Blobindextags |
Festlegen von Blobtags (REST-API) |
Abrufen von Tags
Sie können Indextags abrufen, wenn Ihr Code autorisierten Zugriff auf Blobdaten über einen der folgenden Mechanismen hat:
- Sicherheitsprinzipal, dem mit der Aktion Microsoft.Storage/storageAccounts/blobServices/containers/blobs/blobs/tags/read eine Azure RBAC-Rolle zugewiesen ist. Der Besitzer von Speicherblobdaten ist eine integrierte Rolle, welche diese Aktion umfasst.
- Shared Access Signature (SAS) mit Zugriffsberechtigung für die Tags des Blobs (
t
-Berechtigung) - Kontoschlüssel
Weitere Informationen finden Sie unter Abrufen und Auflisten von Blobindextags.
Um Tags abzurufen, erstellen Sie einen BlobClient und verwenden dann die folgende Methode:
Im folgenden Beispiel wird gezeigt, wie Sie die Tags des Blobs abrufen und iterieren.
export async function getBlobTags(
blockBlobClient: BlockBlobClient
): Promise<Tags> {
const getTagsResponse: BlobGetTagsResponse = await blockBlobClient.getTags();
if (getTagsResponse.errorCode) throw Error(getTagsResponse.errorCode);
// Tags: Record<string, string>
const tags: Tags = getTagsResponse.tags;
console.log(`tags for ${blockBlobClient.name}`);
// Print out name/value pairs
Object.keys(tags).map((tag) => console.log(`${[tag]}: ${tags[tag]}`));
return tags;
}
Filtern und Suchen von Daten mit Blobindextags
Sie können Daten mithilfe von Indextags suchen und filtern, wenn Ihr Code autorisierten Zugriff auf Blobdaten über einen der folgenden Mechanismen hat:
- Sicherheitsprinzipal, dem mit der Aktion Microsoft.Storage/storageAccounts/blobServices/containers/blobs/filter/action eine Azure RBAC-Rolle zugewiesen ist. Der Besitzer von Speicherblobdaten ist eine integrierte Rolle, welche diese Aktion umfasst.
- Shared Access Signature (SAS) mit der Berechtigung zum Filtern von Blobs nach Tags (
f
-Berechtigung) - Kontoschlüssel
Weitere Informationen finden Sie unter Suchen nach Daten mithilfe von Blobindextags.
Hinweis
Indextags können nicht verwendet werden, um frühere Versionen abzurufen. Tags für Vorgängerversionen werden nicht an das Blobindexmodul übermittelt. Weitere Informationen finden Sie unter Bedingungen und bekannte Probleme.
Daten werden mit einem JSON-Objekt abgefragt, das als Zeichenfolge gesendet wird. Die Eigenschaften müssen keine zusätzlichen Zeichenfolgenführungszeichen aufweisen, aber die Werte benötigen zusätzliche Zeichenfolgenführungszeichen.
Die folgende Tabelle zeigt einige Abfrage-Zeichenfolgen:
Abfragezeichenfolge für Tags (tagOdataQuery) | BESCHREIBUNG |
---|---|
id='1' AND project='billing' |
Filtern von Blobs auf allen Containern basierend auf diesen beiden Eigenschaften |
owner='PhillyProject' AND createdOn >= '2021-12' AND createdOn <= '2022-06' |
Filtern Sie Blobs auf allen Containern basierend auf strenger Eigenschaftswert für owner und Bereich von Datumsangaben für createdOn Eigenschaft. |
@container = 'my-container' AND createdBy = 'Jill' |
Filtern nach Container und spezifischer Eigenschaft. In dieser Abfrage createdBy handelt es sich um eine Textgleichung und gibt keine Autorisierungsübereinstimmung über Active Directory an. |
Um Tags aufzufinden, erstellen Sie einen BlobClient und verwenden dann die folgende Methode:
Im folgenden Beispiel werden alle Blobs gefunden, die dem TagOdataQuery-Parameter entsprechen.
async function findBlobsByQuery(
blobServiceClient: BlobServiceClient,
tagOdataQuery: string
): Promise<void> {
// page size
const maxPageSize = 10;
let i = 1;
const listOptions: ServiceFindBlobByTagsOptions = {};
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
const 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)}`);
}
}
}
Und die Ausgabe für diese Funktion zeigt die übereinstimmenden Blobs und deren Tags, basierend auf dem Konsole.log-Code in der vorherigen Funktion:
Antwort |
---|
Blob 1: set-tags-1650565920363-query-by-tag-blob-a-1.txt - {"createdOn":"2022-01","owner":"PhillyProject","project":"set-tags-1650565920363"} |
Ressourcen
Weitere Informationen zur Verwendung von Indextags zum Verwalten und Suchen von Daten mithilfe der Azure Blob Storage-Clientbibliothek für JavaScript finden Sie in den folgenden Ressourcen.
REST-API-Vorgänge
Das Azure SDK für JavaScript enthält Bibliotheken, die auf der zugrunde liegenden Azure-REST-API basieren und ermöglicht Ihnen dadurch die Interaktion mit REST-API-Vorgängen über vertraute JavaScript-Paradigmen. Die Methoden der Clientbibliothek zum Verwalten und Verwenden von Blobindextags verwenden die folgenden REST-API-Vorgänge:
- Abrufen von Blobtags (REST-API)
- Festlegen von Blobtags (REST-API)
- Suchen von Blob anhand von Tags (REST-API)
Codebeispiele
Ressourcen zur Clientbibliothek
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für