Megosztás a következőn keresztül:


Tárolóbérletek létrehozása és kezelése JavaScript használatával

Ez a cikk bemutatja, hogyan hozhat létre és kezelhet tárolóbérleteket a JavaScripthez 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

  • A cikkben szereplő példák feltételezik, hogy már rendelkezik egy projekttel, amely a JavaScripthez készült Azure Blob Storage ügyfélkódtárral dolgozik. Ha szeretne többet megtudni a projekt beállításáról, beleértve a csomagtelepítést, a modulok importálását és egy engedélyezett ügyfélobjektum létrehozását az adaterőforrások használatához, olvassa el az Azure Blob Storage és a JavaScript használatának első lépéseit.
  • Az engedélyezési mechanizmusnak rendelkeznie kell engedéllyel a tárolóbérletek használatához. További információkért tekintse meg az alábbi REST API-művelet 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 JavaScripttel való létrehozását és kezelését ismertető 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:

async function acquireContainerLeaseAsync(blobContainerClient) {
  const leaseClient = blobContainerClient.getBlobLeaseClient();
  await leaseClient.acquireLease(30);
  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:

async function renewContainerLeaseAsync(blobContainerClient, leaseID) {
  const leaseClient = blobContainerClient.getBlobLeaseClient(leaseID);
  await leaseClient.renewLease();
}

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:

async function releaseContainerLeaseAsync(blobContainerClient, leaseID) {
  const leaseClient = blobContainerClient.getBlobLeaseClient(leaseID);
  await leaseClient.releaseLease();
}

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 az eredeti bérlet lejáratáig vagy felszabadításáig.

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:

async function breakContainerLeaseAsync(blobContainerClient) {
  const leaseClient = blobContainerClient.getBlobLeaseClient();
  await leaseClient.breakLease();
}

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.

A diagram showing container lease states and state change triggers.

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 JavaScripthez 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.

REST API-műveletek

Az Azure SDK for JavaScript 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 ismert JavaScript-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:

Code samples

Ügyfélkódtár erőforrásai

Kapcsolódó információk