Blobtároló törlése és visszaállítása .NET-tel
Ez a cikk bemutatja, hogyan törölhet tárolókat a .NET-hez készült Azure Storage-ügyfélkódtárral. Ha engedélyezte a tárolók helyreállítható törlését, visszaállíthatja a törölt tárolókat.
Előfeltételek
- Azure-előfizetés – hozzon létre egyet ingyenesen
- Azure Storage-fiók – tárfiók létrehozása
- Az operációs rendszer legújabb .NET SDK-ja . Mindenképpen szerezze be az SDK-t, és ne a futtatókörnyezetet.
Saját környezet beállítása
Ha nem rendelkezik meglévő projekttel, ez a szakasz bemutatja, hogyan állíthat be projektet a .NET-hez készült Azure Blob Storage ügyfélkódtár használatához. A lépések közé tartozik a csomagtelepítés, az irányelvek hozzáadása using
és egy engedélyezett ügyfélobjektum létrehozása. További részletekért tekintse meg az Azure Blob Storage és a .NET használatának első lépéseit.
Csomagok telepítése
A projektkönyvtárból telepítse az Azure Blob Storage- és Az Azure Identity-ügyfélkódtárak csomagjait a dotnet add package
paranccsal. Az Azure.Identity-csomagra az Azure-szolgáltatásokhoz való jelszó nélküli kapcsolatokhoz van szükség.
dotnet add package Azure.Storage.Blobs
dotnet add package Azure.Identity
Irányelvek hozzáadása using
Adja hozzá ezeket az using
irányelveket a kódfájl elejéhez:
using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;
A cikkben szereplő néhány példakód további using
irányelveket igényelhet.
Ügyfélobjektum létrehozása
Ha egy alkalmazást a Blob Storage-hoz szeretne csatlakoztatni, hozzon létre egy BlobServiceClient-példányt. Az alábbi példa bemutatja, hogyan hozhat létre ügyfélobjektumot DefaultAzureCredential
engedélyezés céljából:
public BlobServiceClient GetBlobServiceClient(string accountName)
{
BlobServiceClient client = new(
new Uri($"https://{accountName}.blob.core.windows.net"),
new DefaultAzureCredential());
return client;
}
A szolgáltatásügyfél regisztrálható a függőséginjektáláshoz egy .NET-alkalmazásban.
Ügyfélobjektumokat is létrehozhat adott tárolókhoz vagy blobokhoz. Az ügyfélobjektumok létrehozásáról és kezeléséről további információt az adaterőforrásokat kezelő ügyfélobjektumok létrehozása és kezelése című témakörben talál.
Engedélyezés
Az engedélyezési mechanizmusnak rendelkeznie kell a tároló törléséhez vagy visszaállításához szükséges engedélyekkel. A Microsoft Entra-azonosítóval való engedélyezéshez (ajánlott) az Azure RBAC beépített szerepkörű Storage Blob Data Közreműködő vagy újabb szerepkörre van szüksége. További információkért tekintse meg a Tároló törlése (REST API) és a Rest API (Rest API) helyreállítására vonatkozó engedélyezési útmutatót.
Tároló törlése
Tároló törléséhez a .NET-ben használja az alábbi módszerek egyikét:
A Delete és a DeleteAsync metódus kivételt eredményez, ha a tároló nem létezik.
A DeleteIfExists és a DeleteIfExistsAsync metódus logikai értéket ad vissza, amely jelzi, hogy a tároló törölve lett-e. Ha a megadott tároló nem létezik, akkor ezek a metódusok hamis értéket adnak vissza, hogy jelezzék, hogy a tároló nem lett törölve.
A tároló törlése után legalább 30 másodpercig nem hozhat létre azonos nevű tárolót. Ha egy azonos nevű tárolót próbál létrehozni, a 409-ben megadott HTTP-hibakód (ütközés) meghiúsul. A tárolón vagy a blobokon található egyéb műveletek a 404-ben (nem található) hibakóddal meghiúsulnak.
Az alábbi példa törli a megadott tárolót, és kezeli a kivételt, ha a tároló nem létezik:
//-------------------------------------------------
// Delete a container
//-------------------------------------------------
private static async Task DeleteSampleContainerAsync(BlobServiceClient blobServiceClient, string containerName)
{
BlobContainerClient container = blobServiceClient.GetBlobContainerClient(containerName);
try
{
// Delete the specified container and handle the exception.
await container.DeleteAsync();
}
catch (RequestFailedException e)
{
Console.WriteLine("HTTP error code {0}: {1}",
e.Status, e.ErrorCode);
Console.WriteLine(e.Message);
Console.ReadLine();
}
}
Az alábbi példa bemutatja, hogyan törölheti az összes olyan tárolót, amely egy megadott előtaggal kezdődik.
//-------------------------------------------------
// Delete all containers with the specified prefix
//-------------------------------------------------
private static async Task DeleteContainersWithPrefixAsync(BlobServiceClient blobServiceClient, string prefix)
{
Console.WriteLine("Delete all containers beginning with the specified prefix");
try
{
foreach (BlobContainerItem container in blobServiceClient.GetBlobContainers())
{
if (container.Name.StartsWith(prefix))
{
Console.WriteLine("\tContainer:" + container.Name);
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(container.Name);
await containerClient.DeleteAsync();
}
}
Console.WriteLine();
}
catch (RequestFailedException e)
{
Console.WriteLine(e.Message);
Console.ReadLine();
throw;
}
}
Törölt tároló visszaállítása
Ha a tároló helyreállítható törlése engedélyezve van egy tárfiókhoz, előfordulhat, hogy a tároló és tartalma a törlés után, a megadott megőrzési időn belül helyreáll. Helyreállíthatja a helyreállíthatóan törölt tárolót a BlobServiceClient osztály alábbi metódusainak meghívásával.
Az alábbi példa megkeres egy törölt tárolót, lekéri a törölt tároló verzióazonosítóját, majd átadja az azonosítót az UndeleteBlobContainerAsync metódusnak a tároló visszaállításához.
public static async Task RestoreContainer(BlobServiceClient client, string containerName)
{
await foreach (BlobContainerItem item in client.GetBlobContainersAsync
(BlobContainerTraits.None, BlobContainerStates.Deleted))
{
if (item.Name == containerName && (item.IsDeleted == true))
{
try
{
await client.UndeleteBlobContainerAsync(containerName, item.VersionId);
}
catch (RequestFailedException e)
{
Console.WriteLine("HTTP error code {0}: {1}",
e.Status, e.ErrorCode);
Console.WriteLine(e.Message);
}
}
}
}
Források
Ha többet szeretne megtudni egy tároló törléséről a .NET-hez készült Azure Blob Storage ügyfélkódtár használatával, tekintse meg az alábbi erőforrásokat.
REST API-műveletek
A .NET-hez készült Azure SDK olyan kódtárakat tartalmaz, amelyek az Azure REST API-ra épülnek, lehetővé téve a REST API-műveletek használatát ismerős .NET-paradigmákon keresztül. A tároló törlésére vagy visszaállítására szolgáló ügyfélkódtár-metódusok a következő REST API-műveleteket használják:
Ügyfélkódtár erőforrásai
Lásd még
Kapcsolódó tartalom
- Ez a cikk a .NET-hez készült Blob Storage fejlesztői útmutató része. További információért tekintse meg a .NET-alkalmazás buildeléséhez kapcsolódó fejlesztői útmutatók teljes listáját.