Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
- 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"
)
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
- 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 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:
- Blobtulajdonságok beállítása (REST API)
- Blobtulajdonságok lekérése (REST API)
- Blob-metaadatok beállítása (REST API)
- Blob-metaadatok lekérése (REST API)
Ügyfélmodul erőforrásai
Kapcsolódó tartalom
- 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.