إنشاء لقطة كائن ثنائي كبير الحجم وإدارتها في .NET

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

لمزيد من المعلومات حول لقطات كائن ثنائي كبير الحجم في تخزين Azure، راجع لقطات كائن ثنائي كبير الحجم.

إنشاء لقطة

لإنشاء لقطة من كائن ثنائي كبير الحجم للكتلة باستخدام الإصدار 12.x من مكتبة عميل تخزين Azure ل .NET، استخدم إحدى الطرق التالية:

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

private static async Task CreateBlockBlobSnapshot(string accountName, string containerName, string blobName, Stream data)
{
    const string blobServiceEndpointSuffix = ".blob.core.windows.net";
    Uri containerUri = new Uri("https://" + accountName + blobServiceEndpointSuffix + "/" + containerName);

    // Get a container client object and create the container.
    BlobContainerClient containerClient = new BlobContainerClient(containerUri,
        new DefaultAzureCredential());
    await containerClient.CreateIfNotExistsAsync();

    // Get a blob client object.
    BlobClient blobClient = containerClient.GetBlobClient(blobName);

    try
    {
        // Upload text to create a block blob.
        await blobClient.UploadAsync(data);

        // Add blob metadata.
        IDictionary<string, string> metadata = new Dictionary<string, string>
        {
            { "ApproxBlobCreatedDate", DateTime.UtcNow.ToString() },
            { "FileType", "text" }
        };
        await blobClient.SetMetadataAsync(metadata);

        // Sleep 5 seconds.
        System.Threading.Thread.Sleep(5000);

        // Create a snapshot of the base blob.
        // You can specify metadata at the time that the snapshot is created.
        // If no metadata is specified, then the blob's metadata is copied to the snapshot.
        await blobClient.CreateSnapshotAsync();
    }
    catch (RequestFailedException e)
    {
        Console.WriteLine(e.Message);
        Console.ReadLine();
        throw;
    }
}

حذف اللقطات

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

لحذف كائن ثنائي كبير الحجم ولقطاته باستخدام الإصدار 12.x من مكتبة عميل تخزين Azure ل .NET، استخدم إحدى الطرق التالية، وقم بتضمين التعداد DeleteSnapshotsOption :

يوضح مثال التعليمات البرمجية التالي كيفية حذف كائن ثنائي كبير الحجم ولقطاته في .NET ، حيث blobClient يوجد عنصر من النوع BlobClient):

await blobClient.DeleteIfExistsAsync(DeleteSnapshotsOption.IncludeSnapshots, null, default);

الخطوات التالية