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


Blobbérletek létrehozása és kezelése JavaScript használatával

Ez a cikk bemutatja, hogyan hozhat létre és kezelhet blobbérleteket a JavaScripthez készült Azure Storage-ügyfélkódtár használatával. Az ügyfélkódtár használatával blobbé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 a blobbérletek használatához szükséges engedélyekkel. További információkért tekintse meg az alábbi REST API-művelet engedélyezési útmutatóját:

Tudnivalók a blobbérletekről

A bérlet létrehoz és kezel egy blob zárolását az írási és törlési műveletekhez. A zárolás időtartama 15–60 másodperc lehet, vagy végtelen is lehet. A blobok bérlete kizárólagos írási és törlési hozzáférést biztosít a blobhoz. Ha aktív bérlettel rendelkező blobba szeretne írni, az ügyfélnek tartalmaznia kell az aktív bérlet azonosítóját az írási kérelemmel.

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.

Minden tárolóművelet engedélyezett egy olyan tárolón, amely aktív bérlettel rendelkező blobokat tartalmaz, beleértve a tároló törlését is. Ezért a tároló akkor is törölhető, ha a benne lévő blobok aktív bérletekkel rendelkeznek. A Tárolóbérlet művelettel szabályozhatja a tároló törléséhez szükséges jogosultságokat.

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. Az ügyfélkódtár használatával történő tárolóbérletekről további információt a Tárolóbérletek létrehozása és kezelése JavaScript használatával című témakörben talál.

Bérlet beszerzése

Blobbérlet beszerzésekor egy bérletazonosítót kap, amelyet a kód a blobon való működéshez használhat. Ha a blob 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 egy blob 30 másodperces bérletét szerzi be:

async function acquireBlobLeaseAsync(blobClient) {
  const leaseClient = blobClient.getBlobLeaseClient();
  await leaseClient.acquireLease(30);
  return leaseClient;
}

Bérlet megújítása

Megújíthat egy blobbérletet, ha a kérelemben megadott bérletazonosító megegyezik a blobhoz társított bérletazonosítóval. A bérlet akkor is megújítható, ha lejárt, feltéve, hogy a blobot a bérlet lejárata óta nem módosították vagy bérletezték ú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 blob bérletét:

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

Bérlet felszabadítása

Blobbérletet akkor adhat ki, ha a kérelemben megadott bérletazonosító megegyezik a blobhoz 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 blob bérletét.

Egy JavaScriptBlobLeaseClient-példányon az alábbi módszerek egyikével adhat ki bérletet:

Az alábbi példa egy blob bérletét adja ki:

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

Bérlet megszakítása

A blobbérleteket megszakíthatja, ha a blob 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 egy blob bérletét bontja fel:

async function breakBlobLeaseAsync(blobClient) {
  const leaseClient = blobClient.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 blob 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 blobot 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 ez a művelet sikeres, az ügyfél tudja, hogy a blob nem módosult a bérletazonosító utolsó érvényességétől kezdve. Ha a kérés meghiúsul, az ügyfél tudja, hogy a blob módosult, vagy a blobot ismét bérletbe adták, mivel a bérlet utoljára aktív volt. Az ügyfélnek ezután új bérletet kell szereznie a blobon.

Ha egy bérlet lejár ahelyett, hogy explicit módon fel lett volna szabadítva, előfordulhat, hogy az ügyfélnek akár egy percet is várnia kell, mielőtt új bérletet szerezhet be a blob számára. Az ügyfél azonban azonnal megújíthatja a bérletet a bérletazonosítójával, ha a blobot nem módosították.

A blobok pillanatképeihez nem adható bérlet, mivel a pillanatképek írásvédettek. Ha bérletet kér egy pillanatképhez, az állapotkódot 400 (Bad Request)eredményez.

Források

A blobbé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 blobbé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