Megosztás a következőn keresztül:


Blobindex-címkék használata adatok kezeléséhez és kereséséhez a TypeScript használatával

Ez a cikk bemutatja, hogyan kezelheti és kereshet adatokat blobindexcímkék használatával a JavaScripthez készült Azure Storage-ügyfélkódtár használatával.

Előfeltételek

Tudnivalók a blobindexcímkékről

A blobindexcímkék kulcs-érték címkeattribútumok használatával kategorizálják a tárfiók adatait. Ezek a címkék automatikusan indexelhetők, és kereshető többdimenziós indexként jelennek meg az adatok egyszerű keresése érdekében. Ez a cikk bemutatja, hogyan állíthat be, kérhet le és kereshet meg adatokat blobindexcímkék használatával.

A blobindex-címkék nem támogatottak a hierarchikus névtérrel rendelkező tárfiókok esetében. Ha többet szeretne megtudni a blobindex-címke funkcióról, valamint az ismert problémákról és korlátozásokról, olvassa el az Azure Blob-adatok kezelése és keresése blobindexcímkékkel című témakört.

Címkék beállítása

Indexcímkéket akkor állíthat be, ha a kód jogosult a blobadatokhoz való hozzáférésre az alábbi mechanizmusok egyikén keresztül:

  • A Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write művelettel rendelkező Azure RBAC-szerepkörhöz rendelt biztonsági tag. A Storage Blob Data Owner egy beépített szerepkör, amely tartalmazza ezt a műveletet.
  • Közös hozzáférésű jogosultságkód (SAS) a blob címkéinek elérésére vonatkozó engedéllyel (t engedély)
  • Fiókkulcs

További információ: Blobindexcímkék beállítása.

Ha blobfeltöltéskor szeretne címkéket beállítani, hozzon létre egy BlobClientet , majd használja a következő módszert:

Az alábbi példa ezt a feladatot hajtja végre.

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}`);
}

Az összes címkét törölheti, ha egy üres JSON-objektumot ad át a setTags metódusnak.

Kapcsolódó cikkek
Azure Blob-adatok kezelése és keresése blobindexcímkék használatával
Blobcímkék beállítása (REST API)

Címkék lekérése

Indexcímkéket akkor kaphat, ha a kód jogosult a blobadatokhoz való hozzáférésre az alábbi mechanizmusok egyikén keresztül:

  • A Microsoft.Storage/StorageAccounts/blobServices/containers/blobs/tags/read művelettel azure RBAC-szerepkörrel rendelkező biztonsági tag. A Storage Blob Data Owner egy beépített szerepkör, amely tartalmazza ezt a műveletet.
  • Közös hozzáférésű jogosultságkód (SAS) a blob címkéinek elérésére vonatkozó engedéllyel (t engedély)
  • Fiókkulcs

További információ: Blobindex-címkék lekérése és listázása.

Címkék lekéréséhez hozzon létre egy BlobClientet , majd használja a következő módszert:

Az alábbi példa bemutatja, hogyan lehet lekérni és iterálni a blob címkéi között.

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;
}

Adatok szűrése és keresése blobindexcímkék használatával

Indexcímkék használatával kereshet és szűrhet adatokat, ha a kód jogosult a blobadatokhoz való hozzáférésre az alábbi mechanizmusok egyikén keresztül:

  • A Microsoft.Storage/StorageAccounts/blobServices/containers/blobs/filter/action művelettel Azure RBAC-szerepkörrel rendelkező biztonsági tag. A Storage Blob Data Owner egy beépített szerepkör, amely tartalmazza ezt a műveletet.
  • Megosztott hozzáférésű jogosultságkód (SAS) a blobok címkék szerinti szűrésére (f engedély)
  • Fiókkulcs

További információ: Adatok keresése blobindexcímkék használatával.

Feljegyzés

Nem használhat indexcímkéket a korábbi verziók lekéréséhez. A korábbi verziók címkéi nem lesznek átadva a blobindexmotornak. További információ: Feltételek és ismert problémák.

A rendszer lekérdezi az adatokat egy sztringként küldött JSON-objektummal. A tulajdonságoknak nem kell további sztring-idézőjelekkel rendelkezniük, de az értékekhez további sztring-idézőjelek szükségesek.

Az alábbi táblázat néhány lekérdezési sztringet mutat be:

Címkék lekérdezési sztringje (tagOdataQuery) Leírás
id='1' AND project='billing' Blobok szűrése az összes tárolóban e két tulajdonság alapján
owner='PhillyProject' AND createdOn >= '2021-12' AND createdOn <= '2022-06' A blobok szűrése az összes tárolóban a tulajdonság szigorú tulajdonságértéke owner és dátumtartománya createdOn alapján.
@container = 'my-container' AND createdBy = 'Jill' Szűrés tároló és adott tulajdonság szerint. Ebben a lekérdezésben szöveges egyezés van, createdBy és nem jelez engedélyezési egyezést az Active Directoryn keresztül.

Blobok kereséséhez hozzon létre egy BlobClientet , majd használja a következő módszert:

Az alábbi példa megkeresi a tagOdataQuery paraméternek megfelelő összes blobot.

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)}`);
    }
  }
}

A függvény példakimenete pedig a megfeleltetett blobokat és azok címkéit jeleníti meg az előző függvény console.log kódja alapján:

Válasz
Blob 1: set-tags-1650565920363-query-by-tag-blob-a-1.txt - {"createdOn":"2022-01","owner":"PhillyProject","project":"set-tags-1650565920363"}

Források

Ha többet szeretne megtudni arról, hogyan kezelheti és kereshet adatokat az indexcímkék használatával a JavaScripthez készült Azure Blob Storage ügyfélkódtár használatával, tekintse meg az alábbi erőforrásokat.

REST API-műveletek

Az Azure SDK for JavaScript olyan kódtárakat tartalmaz, amelyek az Azure REST API-ra épülnek, lehetővé téve a REST API-műveletek használatát ismert JavaScript-paradigmákon keresztül. A blobindexcímkék kezelésére és használatára szolgáló ügyfélkódtár-metódusok a következő REST API-műveleteket használják:

Kódminták

Ügyfélkódtár erőforrásai

Lásd még