Tárolóbérletek létrehozása és kezelése a .NET-tel
Ez a cikk bemutatja, hogyan hozhat létre és kezelhet tárolóbérleteket a .NET-hez készült Azure Storage-ügyfélkódtár használatával. Az ügyfélkódtár használatával tárolóbérleteket szerezhet be, újíthat meg, adhat ki és szakíthat meg.
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óbérlet használatá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 bérlettároló (REST API) engedélyezési útmutatóját.
Tudnivalók a tárolóbérletekről
A bérlet létrehozza és kezeli a tároló zárolását a törlési műveletekhez. A zárolás időtartama 15–60 másodperc lehet, vagy végtelen is lehet. A tárolón lévő bérlet kizárólagos törlési hozzáférést biztosít a tárolóhoz. A tárolóbérletek csak a tároló törlésének lehetőségét vezérli a Tároló REST API törlése művelettel. Aktív bérlettel rendelkező tároló törléséhez az ügyfélnek tartalmaznia kell az aktív bérlet azonosítóját a törlési kérelemmel. Minden más tárolóművelet sikeres egy bérelt tárolón a bérletazonosító nélkül. Ha engedélyezte a tárolók helyreállítható törlését, visszaállíthatja a törölt tárolókat.
Ha többet szeretne megtudni a bérletállapotokról, és hogy mikor hajthat végre egy adott műveletet egy bérleten, tekintse meg a bérletállapotokat és a műveleteket.
A bérletműveleteket a BlobLeaseClient osztály kezeli, amely egy olyan ügyfelet biztosít, amely a blobok és tárolók összes bérletműveletét tartalmazza. Ha többet szeretne megtudni a blobbérletekről az ügyfélkódtár használatával, olvassa el a blobbérletek létrehozása és kezelése a .NET-tel című témakört.
Bérlet beszerzése
Tárolóbérlet beszerzésekor egy bérletazonosítót kap, amelyet a kód a tárolón való működéshez használhat. Ha a tároló már rendelkezik aktív bérletekkel, csak az aktív bérletazonosító használatával kérhet új bérletet. Megadhatja azonban az új bérlet időtartamát.
Bérlet beszerzéséhez hozza létre a BlobLeaseClient osztály egy példányát, majd használja az alábbi módszerek egyikét:
Az alábbi példa 30 másodperces bérletet szerez be egy tárolóhoz:
public static async Task<BlobLeaseClient> AcquireContainerLeaseAsync(
BlobContainerClient containerClient)
{
// Get a BlobLeaseClient object to work with a container lease
BlobLeaseClient leaseClient = containerClient.GetBlobLeaseClient();
Response<BlobLease> response =
await leaseClient.AcquireAsync(duration: TimeSpan.FromSeconds(30));
// Use response.Value to get information about the container lease
return leaseClient;
}
Bérlet megújítása
Megújíthat egy tárolóbérletet, ha a kérelemben megadott bérletazonosító megegyezik a tárolóhoz társított bérletazonosítóval. A bérlet akkor is megújítható, ha lejárt, feltéve, hogy a tárolót a bérlet lejárta óta nem adták ki újra. Amikor megújít egy bérletet, a bérlet időtartama visszaáll.
A bérlet megújításához használja az alábbi módszerek egyikét egy BlobLeaseClient-példányon :
Az alábbi példa megújít egy tárolóbérletet:
public static async Task RenewContainerLeaseAsync(
BlobContainerClient containerClient,
string leaseID)
{
// Get a BlobLeaseClient object to work with a container lease
BlobLeaseClient leaseClient = containerClient.GetBlobLeaseClient(leaseID);
await leaseClient.RenewAsync();
}
Bérlet felszabadítása
Felszabadíthat egy tárolóbérletet, ha a kérelemben megadott bérletazonosító megegyezik a tárolóhoz társított bérletazonosítóval. A bérlet felszabadítása lehetővé teszi, hogy egy másik ügyfél közvetlenül a kiadás befejezése után megszerezze a tároló bérletét.
A BlobLeaseClient-példányon az alábbi módszerek egyikével adhat ki bérletet:
Az alábbi példa egy tároló bérletét adja ki:
public static async Task ReleaseContainerLeaseAsync(
BlobContainerClient containerClient,
string leaseID)
{
// Get a BlobLeaseClient object to work with a container lease
BlobLeaseClient leaseClient = containerClient.GetBlobLeaseClient(leaseID);
await leaseClient.ReleaseAsync();
}
Bérlet megszakítása
Megszakíthatja a tárolóbérletet, ha a tároló aktív bérletet kapott. Bármely engedélyezett kérelem megszakíthatja a bérletet; a kérelem nem szükséges egyező bérletazonosító megadásához. A bérletek nem újíthatók meg a szerződés megszakadása után, és a bérlet feltörése megakadályozza az új bérlet beszerzését egy ideig, amíg az eredeti bérlet lejár vagy fel nem szabadul.
Egy BlobLeaseClient-példányon az alábbi módszerek egyikével szakíthat meg egy bérletet:
Az alábbi példa megszakít egy tároló bérletét:
public static async Task BreakContainerLeaseAsync(
BlobContainerClient containerClient)
{
// Get a BlobLeaseClient object to work with a container lease
BlobLeaseClient leaseClient = containerClient.GetBlobLeaseClient();
await leaseClient.BreakAsync();
}
Bérletállapotok és műveletek
Az alábbi ábra egy bérlet öt állapotát, valamint a bérletállapot-módosításokat okozó parancsokat vagy eseményeket mutatja be.
Az alábbi táblázat felsorolja az öt bérletállapotot, rövid leírást ad mindegyikről, és felsorolja az adott állapotban engedélyezett bérletműveleteket. Ezek a bérletműveletek állapotváltásokat okoznak, ahogy az a diagramon is látható.
Bérlet állapota | Leírás | Bérletműveletek engedélyezettek |
---|---|---|
Elérhető | A bérlet feloldva van, és beszerezhető. | acquire |
Bérelt | A bérlet zárolva van. | acquire (csak ugyanaz a bérletazonosító), renew , change , release és break |
Lejárt | A bérlet időtartama lejárt. | acquire , renew , release és break |
Törés | A bérlet megszakadt, de a bérlet a megszakítási időszak lejártáig zárolva marad. | release és break |
Törött | A bérlet megszakadt, és a megszakítási időszak lejárt. | acquire , release és break |
Ha egy bérlet lejár, a blobszolgáltatás a bérletazonosítót addig tartja karban, amíg a tárolót nem módosítják vagy újra nem bérletelik. Az ügyfél megkísérelheti megújítani vagy felszabadítani a bérletet a lejárt bérletazonosító használatával. Ha a kérés meghiúsul, az ügyfél tudja, hogy a tárolót ismét bérletbe adták, vagy a tárolót törölték, mivel a bérlet utoljára aktív volt.
Ha a bérlet nem explicit módon szabadul fel, hanem lejár egy bérlet, előfordulhat, hogy az ügyfélnek akár egy percet is várnia kell, mielőtt új bérletet szerezhet be a tárolóhoz. Az ügyfél azonban azonnal megújíthatja a bérletet a lejárt bérletazonosítóval.
Források
A tárolóbérletek .NET-hez készült Azure Blob Storage-ügyfélkódtár használatával történő kezelésével kapcsolatos további információkért tekintse meg az alábbi erőforrásokat.
Kódminták
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óbérletek kezelésére szolgáló ügyfélkódtár-metódusok a következő REST API-műveletet 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.