Freigeben über


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

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:

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:

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:

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:

Codebeispiele

Ressourcen zur Clientbibliothek

Weitere Informationen