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


Blobtulajdonságok és metaadatok kezelése a Go használatával

A blobok az általuk tárolt adatokon kívül támogatják a rendszer tulajdonságait és a felhasználó által definiált metaadatokat. Ez a cikk bemutatja, hogyan kezelheti a rendszertulajdonságokat és a felhasználó által definiált metaadatokat a Go-hoz készült Azure Storage-ügyfélmodul használatával.

Prerequisites

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"
)

Ezek az importálási útvonalak az első lépésekhez szükséges minimumot jelölik. 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
}

Authorization

Az engedélyezési mechanizmusnak rendelkeznie kell a tárolótulajdonságok vagy metaadatok 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 Storage Blob Data Reader vagy magasabb szerepkörre van szüksége a adatok lekérése műveletekhez, míg a Storage Blob Data Contributor vagy magasabb szerepkörre van szükség a adatok beállítása műveletekhez. További információért tekintse meg a Blob tulajdonságainak beállítása (REST API), a Blob tulajdonságainak lekérése (REST API), a Blob-metaadatok beállítása (REST API) vagy a Blob-metaadatok lekérése (REST API) engedélyezési útmutatóját.

Tudnivalók a tulajdonságokról és a metaadatokról

  • Rendszertulajdonságok: A rendszertulajdonságok minden Blob Storage-erőforráson léteznek. Ezek némelyike olvasható vagy beállítható, míg mások írásvédettek. A borítók alatt egyes rendszertulajdonságok megfelelnek bizonyos szabványos HTTP-fejléceknek. A Go Azure Storage-ügyfélkódtára ezeket a tulajdonságokat fenntartja Önnek.

  • Felhasználó által definiált metaadatok: A felhasználó által definiált metaadatok egy vagy több, Blob Storage-erőforráshoz megadott név-érték párból állnak. Metaadatok használatával további értékeket tárolhat az erőforrással. A metaadat-értékek csak saját célra szolgálnak, és nem befolyásolják az erőforrás viselkedését.

    A metaadat-név/érték párok érvényes HTTP-fejlécek, és be kell tartaniuk a HTTP-fejlécekre vonatkozó összes korlátozást. A metaadatok elnevezési követelményeiről további információt a Metaadatnevek című témakörben talál.

Note

A blobindex-címkék emellett lehetővé teszik a felhasználó által meghatározott kulcs-/értékattribútumok tárolását egy Azure Blob Storage-erőforrás mellett. Bár hasonló a metaadatokhoz, csak a blob index címkék lesznek automatikusan indexelve és kereshetővé téve a natív blob szolgáltatás által. A metaadatok csak akkor indexelhetők és kérdezhetők le, ha nem használ külön szolgáltatást, például az Azure Search szolgáltatást.

A funkcióról további információt az Azure Blob Storage-adatok kezelése és keresése blobindexszel (előzetes verzió) című témakörben talál.

Tulajdonságok beállítása és lekérése

A blob tulajdonságainak beállításához hívja meg a következő metódust egy blobügyfél-objektumból:

A nem explicit módon beállított tulajdonságok törlődnek. A meglévő tulajdonságok megőrzéséhez először lekérheti a blobtulajdonságokat, majd azokkal feltöltheti a nem frissített fejléceket.

Az alábbi példakód egy blobon állítja be a BlobContentType rendszer- és BlobContentLanguage a rendszertulajdonságokat, miközben megőrzi a meglévő tulajdonságokat:

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

    // Get the existing blob properties
    resp, err := blobClient.GetProperties(context.TODO(), nil)
    handleError(err)

    // Set the new blob properties and include existing properties
    _, err = blobClient.SetHTTPHeaders(context.TODO(), blob.HTTPHeaders{
        BlobContentType:        to.Ptr("text/plain"),
        BlobContentLanguage:    to.Ptr("en-us"),
        BlobContentEncoding:    resp.ContentEncoding,
        BlobContentDisposition: resp.ContentDisposition,
        BlobCacheControl:       resp.CacheControl,
    }, nil)
    handleError(err)
}

Blob tulajdonságainak lekéréséhez hívja meg a következő metódust egy blobügyfél-objektumból:

Az alábbi példakód lekéri egy blob rendszertulajdonságait, és megjeleníti az értékek egy részét:

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

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

    // Print the blob properties
    fmt.Printf("Content type: %v\n", *resp.ContentType)
    fmt.Printf("Content language: %v\n", *resp.ContentLanguage)
}

Metaadatok beállítása és lekérése

A metaadatokat egy vagy több név-érték párként is megadhatja egy blob- vagy tárolóerőforráson. Metaadatok beállításához küldjön egy név-érték párokat tartalmazó térképet egy blobügyfél-objektumból a következő módszerrel:

Az alábbi példakód egy blob metaadatait állítja be:

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

    // Set the blob metadata
    var metadata = make(map[string]*string)
    metadata["key1"] = to.Ptr("value1")
    metadata["key2"] = to.Ptr("value2")

    _, err := blobClient.SetMetadata(context.TODO(), metadata, nil)
    handleError(err)
}

A metaadatok lekéréséhez hívja meg a GetProperties metódust egy blobügyfél-objektumból, és lépjen a válasz mezőjéhez Metadata . A GetProperties metódus a blobtulajdonságokat és a metaadatokat a Blob tulajdonságainak lekérése művelet és a Blob metaadatok lekérése művelet meghívásával kéri le .

Az alábbi kódpéldában metaadatok olvashatók egy blobon, és kinyomtatja az egyes kulcs-érték párokat:

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

    // Get the blob properties, which includes metadata
    resp, err := blobClient.GetProperties(context.TODO(), nil)
    handleError(err)

    // Print the blob metadata
    for k, v := range resp.Metadata {
        fmt.Printf("%v: %v\n", k, *v)
    }
}

Note

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.

Resources

A rendszertulajdonságok és a felhasználó által definiált metaadatok Go-hoz készült Azure Blob Storage-ügyfélmodullal történő kezelésével kapcsolatos további információkért tekintse meg az alábbi erőforrásokat.

Kódrészletek

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 rendszertulajdonságok és a felhasználó által definiált metaadatok kezelésére szolgáló ügyfélkódtár-metódusok a következő REST API-műveleteket használják:

Ügyfélmodul erőforrásai

  • Ez a cikk a Blob Storage Go-hoz készült fejlesztői útmutatójának része. További információkért tekintse meg a Go alkalmazás elkészítéséhez kapcsolódó fejlesztői útmutató cikkek teljes listáját.