Sdílet prostřednictvím


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

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ů:

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ů:

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ů:

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:

Ukázky kódu

Prostředky klientské knihovny

Viz také