Go ile kapsayıcı özelliklerini ve meta verilerini yönetme
Blob kapsayıcıları, içerdikleri verilere ek olarak sistem özelliklerini ve kullanıcı tanımlı meta verileri destekler. Bu makalede Go için Azure Depolama istemci modülüyle sistem özelliklerinin ve kullanıcı tanımlı meta verilerin nasıl yönetileceğini gösterilmektedir.
Önkoşullar
- Azure aboneliği - ücretsiz bir abonelik oluşturun
- Azure depolama hesabı - depolama hesabı oluşturma
- Go 1.18+
Ortamınızı ayarlama
Mevcut bir projeniz yoksa, bu bölümde Go için Azure Blob Depolama istemci modülüyle çalışmak üzere bir projenin nasıl ayarlanacağı gösterilir. Adımlar arasında modül yüklemesi, yol ekleme import
ve yetkili istemci nesnesi oluşturma yer alır. Ayrıntılar için bkz. Azure Blob Depolama kullanmaya başlama ve Git.
Modülleri yükleme
Aşağıdaki komutu kullanarak azblob modülünü yükleyin:
go get github.com/Azure/azure-sdk-for-go/sdk/storage/azblob
Microsoft Entra Id ile kimlik doğrulaması yapmak için (önerilen), aşağıdaki komutu kullanarak modülü yükleyin azidentity
:
go get github.com/Azure/azure-sdk-for-go/sdk/azidentity
İçeri aktarma yolları ekleme
Kod dosyanıza aşağıdaki içeri aktarma yollarını ekleyin:
import (
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
)
Bu içeri aktarma yolları, başlamak için gereken en düşük değeri temsil eder. Bu makaledeki bazı kod örnekleri için ek içeri aktarma yolları gerekebilir. Belirli ayrıntılar ve örnek kullanım için bkz . Kod örnekleri.
İstemci nesnesi oluşturma
Bir uygulamayı Blob Depolama'ya bağlamak için azblob kullanarak bir istemci nesnesi oluşturun. NewClient. Aşağıdaki örnekte yetkilendirme için kullanarak DefaultAzureCredential
bir istemci nesnesinin nasıl oluşturulacağı gösterilmektedir:
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
}
Yetkilendirme
Yetkilendirme mekanizması, kapsayıcı özellikleri veya meta verilerle çalışmak için gerekli izinlere sahip olmalıdır. Microsoft Entra Id ile yetkilendirme için (önerilir), alma işlemleri için Azure RBAC yerleşik rolü Depolama Blob Veri Okuyucusu veya üzeri, ayarlanan işlemler için depolama blobu veri katkıda bulunanı veya üzeri gerekir. Daha fazla bilgi edinmek için Bkz. Kapsayıcı Özelliklerini Alma (REST API), Kapsayıcı Meta Verilerini Ayarlama (REST API) veya Kapsayıcı Meta Verilerini Alma (REST API)için yetkilendirme kılavuzu.
Özellikler ve meta veriler hakkında
Sistem özellikleri: Sistem özellikleri her Blob Depolama kaynağında bulunur. Bazıları okunabilir veya ayarlanabilirken, bazıları salt okunurdur. Arka planda, bazı sistem özellikleri belirli standart HTTP üst bilgilerine karşılık gelir. Go için Azure Depolama istemci kitaplığı bu özellikleri sizin için korur.
Kullanıcı tanımlı meta veriler: Kullanıcı tanımlı meta veriler, Blob depolama kaynağı için belirttiğiniz bir veya daha fazla ad-değer çiftini içerir. Kaynakla birlikte ek değerleri depolamak için meta verileri kullanabilirsiniz. Meta veri değerleri yalnızca sizin amaçlarınıza yöneliktir ve kaynağın davranışını etkilemez.
Meta veri adı/değer çiftleri geçerli HTTP üst bilgileridir ve HTTP üst bilgilerini yöneten tüm kısıtlamalara uymalıdır. Meta veri adlandırma gereksinimleri hakkında daha fazla bilgi için bkz . Meta veri adları.
Kapsayıcı özelliklerini alma
Kapsayıcı özelliklerini almak için bir kapsayıcı istemci nesnesinden aşağıdaki yöntemi çağırın:
Aşağıdaki kod örneği bir kapsayıcının sistem özelliklerini getirir ve özellik değerlerinden bazılarını konsol penceresine yazar:
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)
}
Meta verileri ayarlama ve alma
Meta verileri bir blob veya kapsayıcı kaynağında bir veya daha fazla ad-değer çifti olarak belirtebilirsiniz. Meta verileri ayarlamak için bir kapsayıcı istemci nesnesinden aşağıdaki yöntemi çağırın:
Kapsayıcı meta verilerinin ayarlanması, kapsayıcıyla ilişkili tüm mevcut meta verilerin üzerine yazılır. Tek bir ad-değer çiftini değiştirmek mümkün değildir.
Aşağıdaki kod örneği bir kapsayıcıda meta verileri ayarlar:
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)
}
Meta verileri almak için bir kapsayıcı istemci nesnesinden aşağıdaki yöntemi çağırın:
Meta veriler, yanıta dosyasından GetProperties
eklenir. Aşağıdaki örnek meta veri değerlerini okur ve bunları bir konsol penceresine yazar:
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)
}
}
Not
Bu kılavuzdaki kod örnekleri, Azure Blob Depolama ve Go ile çalışmaya başlamanıza yardımcı olmak için tasarlanmıştır. Hata işlemeyi ve Context
değerleri uygulamanızın gereksinimlerini karşılayacak şekilde değiştirmeniz gerekir.
Kaynaklar
Go için Azure Blob Depolama istemci modülünü kullanarak kapsayıcı özelliklerini ve meta verilerini ayarlama ve alma hakkında daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın.
Kod örnekleri
- Bu makaledeki kod örneklerini görüntüleyin (GitHub)
REST API işlemleri
Go için Azure SDK, Azure REST API'sinin üzerinde derlenmiş kitaplıklar içerir ve tanıdık Go paradigmalarıyla REST API işlemleriyle etkileşim kurmanızı sağlar. Özellikleri ve meta verileri ayarlamak ve almak için istemci kitaplığı yöntemleri aşağıdaki REST API işlemlerini kullanır:
- Kapsayıcı Özelliklerini Alma (REST API)
- Kapsayıcı Meta Verilerini Ayarlama (REST API)
- Kapsayıcı Meta Verilerini Alma (REST API)
yöntemi hem get_container_properties
Kapsayıcı Özelliklerini Al işlemini hem de Kapsayıcı Meta Verilerini Al işlemini çağırarak kapsayıcı özelliklerini ve meta verilerini alır.
İstemci modülü kaynakları
İlgili içerik
- Bu makale, Go için Blob Depolama geliştirici kılavuzunun bir parçasıdır. Daha fazla bilgi edinmek için Go uygulamanızı derleme makalelerinde geliştirici kılavuzu makalelerinin tam listesine bakın.