قائمة حاويات كائن ثنائي كبير الحجم مع .NET

عند سرد الحاويات في حساب Azure Storage من تعليمتك البرمجية، يمكنك تحديد عدد من الخيارات لإدارة كيفية إرجاع النتائج من Azure Storage. تُبين هذه المقالة كيفية سرد الحاويات باستخدام مكتبة عميل Azure Storage إلى .NET.

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

إعداد بيئتك

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

تثبيت الحزم

من دليل المشروع الخاص بك، قم بتثبيت حزم Azure Blob Storage ومكتبات عميل Azure Identity باستخدام dotnet add package الأمر . حزمة Azure.Identity مطلوبة للاتصالات بدون كلمة مرور بخدمات Azure.

dotnet add package Azure.Storage.Blobs
dotnet add package Azure.Identity

أضف توجيهات using

أضف هذه using التوجيهات إلى أعلى ملف التعليمات البرمجية:

using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;

قد تتطلب بعض أمثلة التعليمات البرمجية في هذه المقالة توجيهات إضافية using .

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

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

public BlobServiceClient GetBlobServiceClient(string accountName)
{
    BlobServiceClient client = new(
        new Uri($"https://{accountName}.blob.core.windows.net"),
        new DefaultAzureCredential());

    return client;
}

يمكنك تسجيل عميل خدمة لإدخال التبعية في تطبيق .NET.

يمكنك أيضا إنشاء كائنات العميل لحاويات أو كائنات ثنائية كبيرة الحجم معينة. لمعرفة المزيد حول إنشاء كائنات العميل وإدارتها، راجع إنشاء كائنات العميل التي تتفاعل مع موارد البيانات وإدارتها.

التصريح

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

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

عند سرد الحاويات من التعليمات البرمجية الخاصة بك، يمكنك تحديد خيارات لإدارة كيفية إرجاع النتائج من Azure Storage. يمكنك تحديد عدد النتائج المراد إرجاعها في كل مجموعة من النتائج، ثم استرداد المجموعات اللاحقة. يمكنك أيضا تصفية النتائج حسب بادئة، وإرجاع بيانات تعريف الحاوية مع النتائج. يتم وصف هذه الخيارات في الأقسام التالية.

لإدراج الحاويات في حساب التخزين خاصتك، اتصل بإحدى الطرق التالية:

ترجع هذه الأساليب قائمة كائنات BlobContainerItem . يتم ترتيب الحاويات معجميا بالاسم.

إدارة عدد النتائج التي يتم إرجاعها

بشكل افتراضي، تعرض عملية الإدراج حوالي 5000 نتيجة في المرة الواحدة، ولكن يمكنك تحديد عدد النتائج التي ترجع لكل عملية إدراج. توضح لك الأمثلة المعروضة في هذه المقالة كيفية عرض النتائج في الصفحات. لمعرفة المزيد حول مفاهيم ترقيم الصفحات، راجع ترقيم الصفحات باستخدام Azure SDK ل .NET.

تصفية النتائج باستخدام البادئة

لتصفية قائمة الحاويات، حدد سلسلة للمعلمة prefix. يمكن أن تتضمن سلسلة البادئة حرفاً واحداً أو أكثر. ثم يقوم Azure Storage بإرجاع الحاويات التي تبدأ أسماؤها بهذه البادئة فقط.

تضمين بيانات تعريف الحاوية

لتضمين بيانات تعريف الحاوية مع النتائج، حدد Metadata قيمة تعداد BlobContainerTraits . يتضمن Azure Storage بيانات التعريف مع كل حاوية يتم إرجاعها، لذلك لا تحتاج إلى إحضار بيانات تعريف الحاوية بشكل منفصل.

تضمين الحاويات المحذوفة

لتضمين حاويات محذوفة مبدئيا مع النتائج، حدد Deleted قيمة قائمة تعداد BlobContainerStates .

مثال على التعليمات البرمجية: سرد حاويات

يسرد المثال التالي بشكل غير متزامن الحاويات الموجودة في حساب تخزين والتي تبدأ ببادئة محددة. يسرد المثال الحاويات التي تبدأ بالبادئة المحددة وإرجاع العدد المحدد من النتائج لكل استدعاء إلى عملية الإدراج. ثم يستخدم رمز المتابعة المميز للحصول على الجزء التالي من النتائج. يقوم المثال أيضاً بإرجاع بيانات تعريف الحاوية مع النتائج.

async static Task ListContainers(BlobServiceClient blobServiceClient, 
                                string prefix, 
                                int? segmentSize)
{
    try
    {
        // Call the listing operation and enumerate the result segment.
        var resultSegment = 
            blobServiceClient.GetBlobContainersAsync(BlobContainerTraits.Metadata, prefix, default)
            .AsPages(default, segmentSize);

        await foreach (Azure.Page<BlobContainerItem> containerPage in resultSegment)
        {
            foreach (BlobContainerItem containerItem in containerPage.Values)
            {
                Console.WriteLine("Container name: {0}", containerItem.Name);
            }

            Console.WriteLine();
        }
    }
    catch (RequestFailedException e)
    {
        Console.WriteLine(e.Message);
        Console.ReadLine();
        throw;
    }
}

الموارد

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

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

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

موارد مكتبة العميل

(راجع أيضًا )

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