إدارة خصائص الحاوية وبيانات التعريف باستخدام Go

تدعم حاويات Blob خصائص النظام وبيانات التعريف المحددة مسبقًا من قبل المستخدم، بالإضافة إلى البيانات التي تحتوي عليها. توضح هذه المقالة كيفية إدارة خصائص النظام وبيانات التعريف المعرفة من قبل المستخدم باستخدام وحدة عميل Azure Storage ل Go.

المتطلبات الأساسية

إعداد بيئتك

إذا لم يكن لديك مشروع موجود، يوضح هذا القسم كيفية إعداد مشروع للعمل مع وحدة عميل Azure Blob Storage ل Go. تتضمن الخطوات تثبيت الوحدة النمطية وإضافة import المسارات وإنشاء كائن عميل معتمد. للحصول على التفاصيل، راجع بدء استخدام Azure Blob Storage وGo.

تثبيت الوحدات النمطية

تثبيت الوحدة النمطية azblob باستخدام الأمر التالي:

go get github.com/Azure/azure-sdk-for-go/sdk/storage/azblob

للمصادقة باستخدام معرف Microsoft Entra (مستحسن)، قم بتثبيت الوحدة النمطية azidentity باستخدام الأمر التالي:

go get github.com/Azure/azure-sdk-for-go/sdk/azidentity

إضافة مسارات الاستيراد

في ملف التعليمات البرمجية، أضف مسارات الاستيراد التالية:

import (
    "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
)

تمثل مسارات الاستيراد هذه الحد الأدنى المطلوب للبدء. قد تتطلب بعض أمثلة التعليمات البرمجية في هذه المقالة مسارات استيراد إضافية. للحصول على تفاصيل محددة ومثال على الاستخدام، راجع نماذج التعليمات البرمجية.

إنشاء كائن عميل

لتوصيل تطبيق ب Blob Storage، قم بإنشاء كائن عميل باستخدام azblob. NewClient. يوضح المثال التالي كيفية إنشاء كائن عميل باستخدام DefaultAzureCredential للتخويل:

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
}

التصريح

يجب أن يكون لآلية التخويل الأذونات اللازمة للعمل مع خصائص الحاوية أو بيانات التعريف. للحصول على تخويل باستخدام معرف Microsoft Entra (موصى به)، تحتاج إلى دور Azure RBAC المضمن في Storage Blob Data Reader أو أعلى لعمليات الحصول ، وStorage Blob Data Contributor أو أعلى لعمليات المجموعة . لمعرفة المزيد، راجع إرشادات التخويل للحصول على خصائص الحاوية (REST API) أو تعيين بيانات تعريف الحاوية (REST API) أو الحصول على بيانات تعريف الحاوية (REST API).

نبذة عن الخصائص وبيانات التعريف

  • خصائص النظام: توجد خصائص النظام على كل مورد Blob Storage. يمكن قراءة بعضها أو تعيينها، بينما البعض الآخر للقراءة فقط. خلف الكواليس، تتوافق بعض خصائص النظام مع بعض رؤوس HTTP القياسية. تحتفظ مكتبة عميل Azure Storage ل Go بهذه الخصائص نيابة عنك.

  • بيانات التعريف المحددة مسبقًا من المستخدم: تتكون بيانات التعريف المحددة مسبقًا من المستخدم من زوج واحد أو أكثر من أزواج قيمة الاسم التي تحددها لمورد تخزين Blob. يمكنك استخدام بيانات التعريف لتخزين قيم إضافية مع المورد. قيم بيانات التعريف هي لأغراضك فقط، ولا تؤثر على كيفية تصرف المورد.

    أزواج اسم/قيمة بيانات التعريف هي رؤوس HTTP صالحة ويجب أن تلتزم بجميع القيود التي تحكم رؤوس HTTP. لمزيد من المعلومات حول متطلبات تسمية بيانات التعريف، راجع أسماء بيانات التعريف.

استرداد خصائص الحاوية

لاسترداد خصائص الحاوية، قم باستدعاء الأسلوب التالي من كائن عميل حاوية:

يجلب مثال التعليمات البرمجية التالي خصائص نظام الحاوية ويكتب بعض قيم الخصائص إلى نافذة وحدة التحكم:

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

تعيين بيانات التعريف واستردادها

يمكنك تحديد بيانات التعريف كزوج واحد أو أكثر من أزواج قيمة الاسم على مورد النقطة أو الحاوية. لتعيين بيانات التعريف، قم باستدعاء الأسلوب التالي من كائن عميل حاوية:

يؤدي تعيين بيانات تعريف الحاوية إلى الكتابة فوق جميع بيانات التعريف الموجودة المقترنة بالحاوية. لا يمكن تعديل زوج اسم-قيمة فردي.

يعين مثال التعليمات البرمجية التالي بيانات التعريف على حاوية:

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

لاسترداد بيانات التعريف، قم باستدعاء الأسلوب التالي من كائن عميل حاوية:

يتم تضمين بيانات التعريف في الاستجابة من GetProperties. يقرأ المثال التالي في قيم بيانات التعريف ويكتبها في نافذة وحدة التحكم:

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

إشعار

تهدف نماذج التعليمات البرمجية في هذا الدليل إلى مساعدتك في البدء في Azure Blob Storage وGo. يجب تعديل معالجة Context الأخطاء والقيم لتلبية احتياجات التطبيق الخاص بك.

الموارد

لمعرفة المزيد حول إعداد خصائص الحاوية وبيانات التعريف واستردادها باستخدام وحدة عميل Azure Blob Storage ل Go، راجع الموارد التالية.

نماذج التعليمات البرمجية

عمليات واجهة برمجة تطبيقات REST

يحتوي Azure SDK for Go على مكتبات تستند إلى واجهة برمجة تطبيقات AZURE REST، مما يسمح لك بالتفاعل مع عمليات واجهة برمجة تطبيقات REST من خلال نماذج Go المألوفة. تستخدم أساليب مكتبة العميل لإعداد واسترداد الخصائص وبيانات التعريف عمليات واجهة برمجة تطبيقات REST التالية:

يسترد get_container_properties الأسلوب خصائص الحاوية وبيانات التعريف عن طريق استدعاء كل من عملية Get Container Properties والعملية Get Container Metadata .

موارد وحدة العميل

  • هذه المقالة هي جزء من دليل مطور Blob Storage ل Go. لمعرفة المزيد، راجع القائمة الكاملة لمقالات دليل المطور في إنشاء تطبيق Go.