حذف حاوية كائن ثنائي كبير الحجم واستعادتها باستخدام Go

توضح هذه المقالة كيفية حذف الحاويات باستخدام الوحدة النمطية لعميل 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 Contributor أو أعلى. لمعرفة المزيد، راجع إرشادات التخويل لحذف الحاوية (REST API) واستعادة الحاوية (REST API).

احذف حاوية

لحذف حاوية، قم باستدعاء الأسلوب التالي:

بعد حذف حاوية، لا يمكنك إنشاء حاوية بنفس الاسم لمدة 30 ثانية على الأقل. فشلت محاولة إنشاء حاوية بنفس الاسم مع رمز 409 (Conflict)خطأ HTTP . تفشل أي عمليات أخرى على الحاوية أو الكائنات الثنائية كبيرة الحجم التي تحتوي عليها مع رمز 404 (Not Found)خطأ HTTP .

يوضح المثال التالي كيفية حذف حاوية محددة:

func deleteContainer(client *azblob.Client, containerName string) {
    // Delete the container
    _, err := client.DeleteContainer(context.TODO(), containerName, nil)
    handleError(err)
}

استعادة حاوية محذوفة

عند تمكين الحذف المبدئي للحاوية لحساب تخزين، يمكن استرداد حاوية محذوفة ومحتوياتها خلال فترة استبقاء محددة. لمعرفة المزيد حول الحذف المبدئي للحاوية، راجع تمكين الحذف المبدئي للحاويات وإدارته. يمكنك استعادة حاوية محذوفة مبدئيا عن طريق استدعاء الأسلوب التالي من ServiceClient المضمن لكائن العميل:

يسرد المثال التالي الحاويات، بما في ذلك الحاويات المحذوفة مبدئيا، ويتكرر عبر القائمة لاستعادة الحاوية المحددة المحذوفة بشكل مبدئي:

func restoreDeletedContainer(client *azblob.Client, containerName string) {
    // List containers, included deleted ones
    pager := client.NewListContainersPager(&azblob.ListContainersOptions{
        Include: azblob.ListContainersInclude{Deleted: true},
    })

    for pager.More() {
        resp, err := pager.NextPage(context.TODO())
        handleError(err)

        for _, container := range resp.ContainerItems {
            if *container.Name == containerName && *container.Deleted {
                // Restore the deleted container
                _, err := client.ServiceClient().RestoreContainer(context.TODO(), containerName, *container.Version, nil)
                handleError(err)
            }
        }
    }
}

إشعار

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

الموارد

لمعرفة المزيد حول حذف حاوية باستخدام وحدة عميل Azure Blob Storage ل Go، راجع الموارد التالية.

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

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

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

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

(راجع أيضًا )

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