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
- Azure-előfizetés – hozzon létre egyet ingyenesen
- Azure Storage-fiók – tárfiók létrehozása
- Go 1.18+
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
- Kódminták megtekintése ebből a cikkből (GitHub)
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:
- Blobcímkék lekérése (REST API)
- Blobcímkék beállítása (REST API)
- Blobok keresése címkék szerint (REST API)
Ügyfélmodul erőforrásai
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: