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


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

Ez a cikk bemutatja, hogyan kezelheti és kereshet adatokat blobindexcímkék használatával a Go Azure Storage-ügyfélmodulja használatával.

Előfeltételek

Saját környezet beállítása

Ha nem rendelkezik meglévő projekttel, ez a szakasz bemutatja, hogyan állíthat be egy projektet a Go Azure Blob Storage-ügyfélmoduljának használatára. A lépések közé tartozik a modul telepítése, az elérési utak hozzáadása import és egy engedélyezett ügyfélobjektum létrehozása. További részletekért tekintse meg az Azure Blob Storage és a Go használatának első lépéseit.

Modulok telepítése

Telepítse az azblob modult a következő paranccsal:

go get github.com/Azure/azure-sdk-for-go/sdk/storage/azblob

A Microsoft Entra-azonosítóval való hitelesítéshez (ajánlott) telepítse a azidentity modult a következő paranccsal:

go get github.com/Azure/azure-sdk-for-go/sdk/azidentity

Importálási útvonalak hozzáadása

A kódfájlban adja hozzá a következő importálási útvonalakat:

import (
    "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
)

A cikkben szereplő néhány példakód további importálási útvonalakat igényelhet. További részletekért és példahasználatért tekintse meg a kódmintákat.

Ügyfélobjektum létrehozása

Ha egy alkalmazást a Blob Storage-hoz szeretne csatlakoztatni, hozzon létre egy ügyfélobjektumot az azblob használatával . NewClient. Az alábbi példa bemutatja, hogyan hozhat létre ügyfélobjektumot DefaultAzureCredential engedélyezés céljából:

func getServiceClientTokenCredential(accountURL string) *azblob.Client {
    // Create a new service client with token credential
    credential, err := azidentity.NewDefaultAzureCredential(nil)
    handleError(err)

    client, err := azblob.NewClient(accountURL, credential, nil)
    handleError(err)

    return client
}

Engedélyezés

Az engedélyezési mechanizmusnak rendelkeznie kell a blobindexcímkék használatához szükséges engedélyekkel. A Microsoft Entra-azonosítóval való engedélyezéshez (ajánlott) az Azure RBAC beépített szerepkörű Storage Blob Data Owner vagy újabb szerepkörre van szüksége. További információ: Blobcímkék lekérése, Blobcímkék beállítása vagy Blobok keresése címkék szerint.

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.

A címkéket a következő módszerrel állíthatja be:

Az ebben a metódusban megadott címkék lecserélik a meglévő címkéket. Ha a meglévő értékeket meg kell őrizni, azokat le kell tölteni, és szerepelnie kell a metódus meghívásában. Az alábbi példa a címkék beállítását mutatja be:

func setBlobTags(client *azblob.Client, containerName string, blobName string) {
    // Reference the blob as a client object
    blobClient := client.ServiceClient().NewContainerClient(containerName).NewBlobClient(blobName)

    // Get existing tags for the blob if they need to be preserved
    resp, err := blobClient.GetTags(context.TODO(), nil)
    handleError(err)
    tags := make(map[string]string)
    for _, v := range resp.BlobTags.BlobTagSet {
        tags[*v.Key] = *v.Value
    }

    // Add or modify blob tags
    var updated_tags = make(map[string]*string)
    updated_tags["tag1"] = to.Ptr("value1")
    updated_tags["tag2"] = to.Ptr("value2")

    // Combine existing tags with new tags
    for k, v := range updated_tags {
        tags[k] = *v
    }

    // Set blob tags
    _, err = blobClient.SetTags(context.TODO(), tags, nil)
    handleError(err)
}

Az összes címkét eltávolíthatja úgy, hogy címkék nélkül hív SetTags , ahogy az alábbi példában látható:

func clearBlobTags(client *azblob.Client, containerName string, blobName string) {
    // Reference the blob as a client object
    blobClient := client.ServiceClient().NewContainerClient(containerName).NewBlobClient(blobName)

    // Clear blob tags
    _, err := blobClient.SetTags(context.TODO(), make(map[string]string), nil)
    handleError(err)
}

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.

A címkéket a következő módszerrel szerezheti be:

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

func getBlobTags(client *azblob.Client, containerName string, blobName string) {
    // Reference the blob as a client object
    blobClient := client.ServiceClient().NewContainerClient(containerName).NewBlobClient(blobName)

    // Get the blob tags
    resp, err := blobClient.GetTags(context.TODO(), nil)
    handleError(err)

    // Print the blob tags
    for _, v := range resp.BlobTags.BlobTagSet {
        fmt.Printf("Key: %v, Value: %v\n", *v.Key, *v.Value)
    }
}

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 blobadatokat indexcímkék alapján az alábbi módszerrel szűrheti:

Az alábbi példa az összes képként címkézett blobot megkeresi és felsorolja:

func findBlobsByTags(client *azblob.Client, containerName string, blobName string) {
    // Reference the container as a client object
    containerClient := client.ServiceClient().NewContainerClient(containerName)

    // Filter blobs by tags
    where := "\"Content\"='image'"
    opts := container.FilterBlobsOptions{MaxResults: to.Ptr(int32(10))}
    resp, err := containerClient.FilterBlobs(context.TODO(), where, &opts)
    handleError(err)

    // Print the blobs found
    for _, blobItem := range resp.FilterBlobSegment.Blobs {
        fmt.Printf("Blob name: %v\n", *blobItem.Name)
    }
}

Feljegyzés

Az útmutatóban szereplő kódminták az Azure Blob Storage és a Go használatának megkezdéséhez nyújtanak segítséget. Az alkalmazás igényeinek megfelelően módosítania kell a hibakezelést és Context az értékeket.

Források

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

Kódminták

REST API-műveletek

Az Azure SDK for Go 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 Go-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:

Ügyfélmodul erőforrásai

Lásd még