حدث
٢ شوال، ١١ م - ٤ شوال، ١١ م
أكبر حدث تعلم Fabric وPower BI وSQL. 31 مارس – 2 أبريل. استخدم التعليمات البرمجية FABINSIDER لتوفير 400 دولار.
تسجيل اليوملم يعد هذا المتصفح مدعومًا.
بادر بالترقية إلى Microsoft Edge للاستفادة من أحدث الميزات والتحديثات الأمنية والدعم الفني.
توضح هذه المقالة كيفية حذف الكائنات الثنائية كبيرة الحجم باستخدام مكتبة عميل 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 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 أو أعلى. لمعرفة المزيد، راجع إرشادات التخويل لحذف Blob (REST API) و Undelete Blob (REST API).
ملاحظة
عند تمكين الحذف المبدئي للكائن الثنائي كبير الحجم لحساب تخزين، لا يمكنك إجراء حذف دائم باستخدام أساليب مكتبة العميل. باستخدام الأساليب الواردة في هذه المقالة، يظل الكائن الثنائي كبير الحجم المحذوف مبدئيا أو إصدار الكائن الثنائي كبير الحجم أو اللقطة متوفرا حتى تنتهي فترة الاستبقاء، وفي ذلك الوقت يتم حذفه نهائيا. لمعرفة المزيد حول عملية REST API الأساسية، راجع حذف Blob (REST API).
لحذف كائن ثنائي كبير الحجم، قم باستدعاء أي من الطرق التالية:
يحذف المثال التالي كائن ثنائي كبير الحجم:
public static async Task DeleteBlobAsync(BlobClient blob)
{
await blob.DeleteAsync();
}
إذا كان للكائن الثنائي كبير الحجم أي لقطات مقترنة، يجب حذف جميع اللقطات الخاصة به لحذف الكائن الثنائي كبير الحجم. يحذف المثال التالي كائن ثنائي كبير الحجم ولقطاته:
public static async Task DeleteBlobSnapshotsAsync(BlobClient blob)
{
// Delete a blob and all of its snapshots
await blob.DeleteAsync(snapshotsOption: DeleteSnapshotsOption.IncludeSnapshots);
// Delete only the blob's snapshots
//await blob.DeleteAsync(snapshotsOption: DeleteSnapshotsOption.OnlySnapshots);
}
لحذف اللقطات فقط وليس الكائن الثنائي كبير الحجم نفسه، يمكنك تمرير المعلمة DeleteSnapshotsOption.OnlySnapshots
.
يعمل الحذف المبدئي للكائنات الثنائية كبيرة الحجم على حماية الكائن الفردي وإصداراته ولقطاته وبيانات تعريفه من الحذف العرضي أو عمليات الاستبدال، عن طريق الاحتفاظ بالبيانات المحذوفة في النظام لفترة زمنية محددة. خلال فترة الاستبقاء، يمكنك استعادة الكائن الثنائي كبير الحجم إلى حالته عند الحذف. وبعد انتهاء فترة الاستبقاء، يتم حذف الكائن الثنائي كبير الحجم بشكل دائم. لمزيد من المعلومات حول الحذف المبدئي للكائن الثنائي كبير الحجم، راجع الحذف المبدئي للكائنات الثنائية كبيرة الحجم.
يمكنك استخدام مكتبات عملاء Azure Storage لاستعادة كائن ثنائي كبير الحجم أو لقطة محذوفة.
تعتمد كيفية استعادة كائن ثنائي كبير الحجم محذوف مبدئيا على ما إذا كان حساب التخزين الخاص بك قد تم تمكين إصدار الكائن الثنائي كبير الحجم أم لا. لمزيد من المعلوماَت حول تعيين إصدار النقاط، راجع تعيين إصدار Blob. راجع أحد الأقسام التالية، استنادا إلى السيناريو الخاص بك:
لاستعادة كائنات ثنائية كبيرة الحجم محذوفة عند عدم تمكين تعيين الإصدار، يمكنك استدعاء أي من الأساليب التالية:
تستعيد هذه الأساليب الكائنات الثنائية كبيرة الحجم المحذوفة مبدئيًا وأي لقطات محذوفة مرتبطة بها. استدعاء أي من هذه الأساليب لكائن ثنائي كبير الحجم لم يتم حذفه ليس له أي تأثير. يستعيد المثال التالي جميع الكائنات الثنائية كبيرة الحجم المحذوفة مبدئيًا ولقطاتها في حاوية:
public static async Task RestoreBlobsAsync(BlobContainerClient container)
{
foreach (BlobItem blob in container.GetBlobs(BlobTraits.None, BlobStates.Deleted))
{
await container.GetBlockBlobClient(blob.Name).UndeleteAsync();
}
}
لاستعادة لقطة معينة محذوفة مبدئيًا، يمكنك أولاً استدعاء Undelete أو UndeleteAsync في الكائن الثنائي كبير الحجم الأساسي، ثم نسخ اللقطة المطلوبة فوق الكائن الثنائي كبير الحجم الأساسي. يعيد المثال التالي كائنًا ثنائيًا كبير الحجم لكتلة إلى أحدث لقطة تم إنشاؤها:
public static async Task RestoreSnapshotsAsync(
BlobContainerClient container,
BlobClient blob)
{
// Restore the deleted blob
await blob.UndeleteAsync();
// List blobs in this container that match prefix
// Include snapshots in listing
Pageable<BlobItem> blobItems = container.GetBlobs(
BlobTraits.None,
BlobStates.Snapshots,
prefix: blob.Name);
// Get the URI for the most recent snapshot
BlobUriBuilder blobSnapshotUri = new BlobUriBuilder(blob.Uri)
{
Snapshot = blobItems
.OrderByDescending(snapshot => snapshot.Snapshot)
.ElementAtOrDefault(0)?.Snapshot
};
// Restore the most recent snapshot by copying it to the blob
await blob.StartCopyFromUriAsync(blobSnapshotUri.ToUri());
}
إذا تم تكوين حساب تخزين لتمكين تعيين إصدار كائن ثنائي كبير الحجم، يؤدي حذف كائن ثنائي كبير الحجم إلى أن يصبح الإصدار الحالي من الكائن الثنائي كبير الحجم هو الإصدار السابق. لاستعادة كائن ثنائي كبير الحجم محذوف مبدئيًا عند تمكين تعيين الإصدار، انسخ إصدارًا سابقًا فوق الكائن الثنائي كبير الحجم الأساسي. يمكنك استخدام أي من الأساليب التالية:
يوضح مثال التعليمات البرمجية التالي كيفية الحصول على أحدث إصدار من كائن ثنائي كبير الحجم محذوف واستعادة أحدث إصدار عن طريق نسخه إلى الكائن الثنائي كبير الحجم الأساسي:
public static void RestoreBlobWithVersioning(
BlobContainerClient container,
BlobClient blob)
{
// List blobs in this container that match prefix
// Include versions in listing
Pageable<BlobItem> blobItems = container.GetBlobs(
BlobTraits.None,
BlobStates.Version,
prefix: blob.Name);
// Get the URI for the most recent version
BlobUriBuilder blobVersionUri = new BlobUriBuilder(blob.Uri)
{
VersionId = blobItems.
OrderByDescending(version => version.VersionId).
ElementAtOrDefault(0)?.VersionId
};
// Restore the most recently generated version by copying it to the base blob
blob.StartCopyFromUri(blobVersionUri.ToUri());
}
لمعرفة المزيد حول كيفية حذف الكائنات الثنائية كبيرة الحجم واستعادة الكائنات الثنائية كبيرة الحجم المحذوفة باستخدام مكتبة عميل Azure Blob Storage ل .NET، راجع الموارد التالية.
يحتوي Azure SDK ل .NET على مكتبات تستند إلى واجهة برمجة تطبيقات AZURE REST، مما يسمح لك بالتفاعل مع عمليات REST API من خلال نماذج .NET المألوفة. تستخدم أساليب مكتبة العميل لحذف الكائنات الثنائية كبيرة الحجم واستعادة الكائنات الثنائية كبيرة الحجم المحذوفة عمليات واجهة برمجة تطبيقات REST التالية:
حدث
٢ شوال، ١١ م - ٤ شوال، ١١ م
أكبر حدث تعلم Fabric وPower BI وSQL. 31 مارس – 2 أبريل. استخدم التعليمات البرمجية FABINSIDER لتوفير 400 دولار.
تسجيل اليومالتدريب
الوحدة النمطية
العمل مع ذاكرة Azure Blob - Training
تعلم كيفية استخدام مكتبة عميل تخزين Azure Blob لإنشاء موارد تخزين Blob وتحديثها.
الشهادة
مُعتمدة من Microsoft: Azure Developer Associate - Certifications
إنشاء حلول شاملة في Microsoft Azure لإنشاء وظائف Azure، وتنفيذ تطبيقات الويب وإدارتها، وتطوير حلول باستخدام تخزين Azure، والمزيد.