تعيين أو تغيير طبقة وصول كائن ثنائي كبير الحجم للكتلة باستخدام .NET

توضح هذه المقالة كيفية تعيين أو تغيير طبقة الوصول لكتلة blob باستخدام مكتبة عميل 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 أو أعلى. لمعرفة المزيد، راجع إرشادات التخويل ل Set Blob Tier.

حول مستويات الوصول إلى الكائن الثنائي كبير الحجم للكتلة

لإدارة تكاليف احتياجات التخزين، قد يكون من المفيد تنظيم بياناتك استنادا إلى مدى تكرار الوصول إليها ومدة الاحتفاظ بها. يوفر تخزين Azure طبقات وصول مختلفة بحيث يمكنك تخزين بيانات كائن ثنائي كبير الحجم بأكثر الطرق فعالية من حيث التكلفة بناءً على كيفية استخدامها.

مستويات الوصول لبيانات الكائن الثنائي كبير الحجم

تتضمن طبقات التخزين إلى Azure Storage ما يلي:

  • الطبقة الساخنة - طبقة عبر الإنترنت محسّنة لتخزين البيانات التي يتم الوصول إليها أو تعديلها بشكل متكرر. الطبقة الساخنة لديها أعلى تكاليف التخزين، ولكن أقل تكاليف الوصول.
  • الطبقة الباردة - طبقة عبر الإنترنت محسّنة لتخزين البيانات التي نادراً ما يتم الوصول إليها أو تعديلها. يجب تخزين البيانات في الطبقة الباردة لمدة لا تقل عن 30 يوما. يحتوي المستوى البارد على تكاليف تخزين أقل وتكاليف وصول أعلى مقارنة بالطبقة الساخنة.
  • الطبقة الباردة - طبقة عبر الإنترنت محسنة لتخزين البيانات التي يتم الوصول إليها أو تعديلها بشكل غير متكرر. يجب تخزين البيانات في الطبقة الباردة لمدة لا تقل عن 90 يوما. تحتوي الطبقة الباردة على تكاليف تخزين أقل وتكاليف وصول أعلى مقارنة بالطبقة الباردة.
  • الطبقة الأرشيفية - طبقة بلا اتصال محسّنة لتخزين البيانات التي نادراً ما يتم الوصول إليها، والتي لها متطلبات زمن انتقال مرنة، حسب ترتيب الساعات. يجب تخزين البيانات في مستوى الأرشيف لمدة لا تقل عن 180 يوما.

لمعرفة المزيد حول مستويات الوصول، راجع مستويات الوصول لبيانات الكائن الثنائي كبير الحجم.

أثناء وجود كائن ثنائي كبير الحجم في طبقة تخزين "الأرشيف"، فإنه يُعتبر غير متصل ولا يمكن قراءته أو تعديله. لقراءة البيانات أو تعديلها في كائن ثنائي كبير الحجم مؤرشف، يجب أولا إعادة ترطيب الكائن الثنائي كبير الحجم إلى طبقة عبر الإنترنت. لمعرفة المزيد حول إعادة ترطيب كائن ثنائي كبير الحجم من طبقة الأرشيف إلى طبقة عبر الإنترنت، راجع إعادة ترطيب Blob من طبقة الأرشيف.

القيود

يسمح بتعيين طبقة الوصول فقط على الكائنات الثنائية كبيرة الحجم للكتلة. لمعرفة المزيد حول القيود المفروضة على تعيين طبقة وصول كائن ثنائي كبير الحجم للكتلة، راجع تعيين طبقة Blob (REST API).

إشعار

لتعيين مستوى الوصول إلى Cold استخدام .NET، يجب استخدام الحد الأدنى لإصدار مكتبة العميل من 12.15.0.

تعيين مستوى وصول كائن ثنائي كبير الحجم أثناء التحميل

يمكنك تعيين طبقة وصول كائن ثنائي كبير الحجم عند التحميل باستخدام فئة BlobUploadOptions . يوضح مثال التعليمات البرمجية التالي كيفية تعيين طبقة الوصول عند تحميل كائن ثنائي كبير الحجم:

public static async Task UploadWithAccessTierAsync(
    BlobContainerClient containerClient,
    string localFilePath)
{
    string fileName = Path.GetFileName(localFilePath);
    BlockBlobClient blockBlobClient = containerClient.GetBlockBlobClient(fileName);

    var uploadOptions = new BlobUploadOptions()
    {
        AccessTier = AccessTier.Cool
    };

    FileStream fileStream = File.OpenRead(localFilePath);
    await blockBlobClient.UploadAsync(fileStream, uploadOptions);
    fileStream.Close();
}

لمعرفة المزيد حول تحميل كائن ثنائي كبير الحجم باستخدام .NET، راجع تحميل كائن ثنائي كبير الحجم باستخدام .NET.

تغيير طبقة الوصول لكتلة كائن ثنائي كبير الحجم موجودة

يمكنك تغيير طبقة الوصول لكتلة كائن ثنائي كبير الحجم موجودة باستخدام إحدى الدالات التالية:

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

public static async Task ChangeBlobAccessTierAsync(
    BlobClient blobClient)
{
    // Change the access tier of the blob to cool
    await blobClient.SetAccessTierAsync(AccessTier.Cool);
}

إذا كنت تقوم بإعادة ترطيب كائن ثنائي كبير الحجم مؤرشف، يمكنك اختياريا تعيين المعلمة rehydratePriority إلى High أو Standard.

نسخ كائن ثنائي كبير الحجم إلى طبقة وصول مختلفة

يمكنك تغيير طبقة الوصول لكتلة كائن ثنائي كبير الحجم موجودة عن طريق تحديد طبقة وصول كجزء من عملية النسخ. لتغيير طبقة الوصول أثناء عملية النسخ، استخدم فئة BlobCopyFromUriOptions وحدد خاصية AccessTier . إذا كنت تقوم بإعادة ترطيب كائن ثنائي كبير الحجم من طبقة الأرشيف باستخدام عملية نسخ، يمكنك اختياريا تعيين الخاصية RehydratePriority إلى High أو Standard.

يوضح مثال التعليمات البرمجية التالي كيفية إعادة ترطيب كائن ثنائي كبير الحجم مؤرشف إلى Hot المستوى باستخدام عملية نسخ:

public static async Task RehydrateBlobUsingCopyAsync(
    BlobClient sourceArchiveBlob,
    BlobClient destinationRehydratedBlob)
{
    // Note: the destination blob must have a different name than the archived source blob

    // Configure copy options to specify hot tier and standard priority
    BlobCopyFromUriOptions copyOptions = new()
    {
        AccessTier = AccessTier.Hot,
        RehydratePriority = RehydratePriority.Standard
    };

    // Copy source blob from archive tier to destination blob in hot tier
    CopyFromUriOperation copyOperation = await destinationRehydratedBlob
        .StartCopyFromUriAsync(sourceArchiveBlob.Uri, copyOptions);
    await copyOperation.WaitForCompletionAsync();
}

لمعرفة المزيد حول نسخ كائن ثنائي كبير الحجم باستخدام .NET، راجع نسخ كائن ثنائي كبير الحجم باستخدام .NET.

الموارد

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

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

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

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

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

(راجع أيضًا )