Verwenden von Blobindextags zum Verwalten und Suchen von Daten mit JavaScript
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 eingerichtet haben, das mit der Azure Blob Storage Clientbibliothek für JavaScript arbeitet. 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 JavaScript.
- 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.
// 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}`);
}
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.
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]}`);
}
}
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, 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)}`);
}
}
}
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-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für