Správa vlastností kontejneru a metadat pomocí Go
Kontejnery objektů blob podporují systémové vlastnosti a uživatelsky definovaná metadata kromě dat, která obsahují. Tento článek ukazuje, jak spravovat vlastnosti systému a uživatelsky definovaná metadata pomocí modulu klienta služby Azure Storage pro Go.
Požadavky
- Předplatné Azure – vytvoření bezplatného předplatného
- Účet úložiště Azure – Vytvoření účtu úložiště
- Go 1.18+
Nastavení prostředí
Pokud nemáte existující projekt, v této části se dozvíte, jak nastavit projekt pro práci s modulem klienta Azure Blob Storage pro Go. Kroky zahrnují instalaci modulu, přidání import
cest a vytvoření autorizovaného klientského objektu. Podrobnosti najdete v tématu Začínáme se službou Azure Blob Storage a Go.
Instalace modulů
Pomocí následujícího příkazu nainstalujte modul azblob:
go get github.com/Azure/azure-sdk-for-go/sdk/storage/azblob
Pokud se chcete ověřit pomocí Microsoft Entra ID (doporučeno), nainstalujte azidentity
modul pomocí následujícího příkazu:
go get github.com/Azure/azure-sdk-for-go/sdk/azidentity
Přidání cest importu
Do souboru kódu přidejte následující cesty importu:
import (
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
)
Tyto cesty importu představují minimum potřebné k zahájení práce. Některé příklady kódu v tomto článku můžou vyžadovat další cesty importu. Konkrétní podrobnosti a ukázkové použití najdete v ukázkách kódu.
Vytvoření objektu klienta
Pokud chcete připojit aplikaci ke službě Blob Storage, vytvořte objekt klienta pomocí příkazu azblob. NewClient. Následující příklad ukazuje, jak vytvořit objekt klienta pro DefaultAzureCredential
autorizaci:
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
}
Autorizace
Autorizační mechanismus musí mít potřebná oprávnění pro práci s vlastnostmi kontejneru nebo metadaty. K autorizaci pomocí Microsoft Entra ID (doporučeno) potřebujete k operacím získání integrovanou roli Storage Blob Data Reader nebo vyšší roli Azure RBAC a přispěvatel dat objektů blob služby Storage nebo vyšší pro nastavené operace. Další informace najdete v pokynech k autorizaci pro získání vlastností kontejneru (REST API), nastavení metadat kontejneru (REST API) nebo získání metadat kontejneru (REST API).
O vlastnostech a metadatech
Vlastnosti systému: Systémové vlastnosti existují pro každý prostředek blob Storage. Některé z nich můžou být přečtené nebo nastavené, zatímco jiné jsou jen pro čtení. Některé systémové vlastnosti na pozadí odpovídají určitým standardním hlavičkám HTTP. Klientská knihovna Azure Storage pro Go tyto vlastnosti udržuje za vás.
Uživatelsky definovaná metadata: Uživatelsky definovaná metadata se skládají z jednoho nebo více párů název-hodnota, které zadáte pro prostředek úložiště objektů blob. Metadata můžete použít k uložení dalších hodnot s prostředkem. Hodnoty metadat jsou určené jenom pro vaše vlastní účely a nemají vliv na chování prostředku.
Páry názvů a hodnot metadat jsou platné hlavičky HTTP a měly by dodržovat všechna omezení, která se řídí hlavičkami HTTP. Další informace opožadavch
Načtení vlastností kontejneru
Pokud chcete načíst vlastnosti kontejneru, zavolejte z objektu klienta kontejneru následující metodu:
Následující příklad kódu načte systémové vlastnosti kontejneru a zapíše některé hodnoty vlastnosti do okna konzoly:
func getContainerProperties(client *azblob.Client, containerName string) {
// Reference the container as a client object
containerClient := client.ServiceClient().NewContainerClient(containerName)
// Get the container properties
resp, err := containerClient.GetProperties(context.TODO(), nil)
handleError(err)
// Print the container properties
fmt.Printf("Blob public access: %v\n", *resp.BlobPublicAccess)
fmt.Printf("Lease status: %v\n", *resp.LeaseStatus)
fmt.Printf("Lease state: %v\n", *resp.LeaseState)
fmt.Printf("Has immutability policy: %v\n", *resp.HasImmutabilityPolicy)
}
Nastavení a načtení metadat
Metadata můžete zadat jako jeden nebo více párů název-hodnota v objektu blob nebo prostředku kontejneru. Pokud chcete nastavit metadata, zavolejte z objektu klienta kontejneru následující metodu:
Nastavení metadat kontejneru přepíše všechna existující metadata přidružená ke kontejneru. Individuální dvojici název-hodnota není možné upravit.
Následující příklad kódu nastaví metadata v kontejneru:
func setContainerMetadata(client *azblob.Client, containerName string) {
// Reference the container as a client object
containerClient := client.ServiceClient().NewContainerClient(containerName)
// Set the container metadata
var metadata = make(map[string]*string)
metadata["key1"] = to.Ptr("value1")
metadata["key2"] = to.Ptr("value2")
_, err := containerClient.SetMetadata(context.TODO(), nil)
handleError(err)
}
Pokud chcete načíst metadata, zavolejte z objektu klienta kontejneru následující metodu:
Metadata jsou zahrnuta v odpovědi od GetProperties
. Následující příklad přečte hodnoty metadat a zapíše je do okna konzoly:
func getContainerMetadata(client *azblob.Client, containerName string) {
// Reference the container as a client object
containerClient := client.ServiceClient().NewContainerClient(containerName)
// Get the container properties, which includes metadata
resp, err := containerClient.GetProperties(context.TODO(), nil)
handleError(err)
// Print the container metadata
for k, v := range resp.Metadata {
fmt.Printf("%v: %v\n", k, *v)
}
}
Poznámka:
Ukázky kódu v této příručce vám pomůžou začít se službou Azure Blob Storage a Go. Měli byste upravit zpracování chyb a Context
hodnoty tak, aby vyhovovaly potřebám vaší aplikace.
Zdroje informací
Další informace o nastavení a načítání vlastností kontejneru a metadat pomocí klientského modulu služby Azure Blob Storage pro Go najdete v následujících zdrojích informací.
Ukázky kódu
- Zobrazení ukázek kódu z tohoto článku (GitHub)
Operace rozhraní REST API
Sada Azure SDK for Go obsahuje knihovny, které jsou postavené na rozhraní Azure REST API a umožňují interakci s operacemi rozhraní REST API prostřednictvím známých paradigmat Go. Metody klientské knihovny pro nastavení a načítání vlastností a metadat používají následující operace rozhraní REST API:
- Získání vlastností kontejneru (REST API)
- Nastavení metadat kontejneru (REST API)
- Získání metadat kontejneru (REST API)
Metoda get_container_properties
načte vlastnosti kontejneru a metadata voláním operace Get Container Properties a Get Container Metadata operace.
Prostředky klientského modulu
Související obsah
- Tento článek je součástí příručky pro vývojáře služby Blob Storage pro Go. Další informace najdete v úplném seznamu článků příručky pro vývojáře na webu Sestavení aplikace Go.