Sdílet prostřednictvím


Vytváření a správa zapůjčení kontejnerů pomocí JavaScriptu

Tento článek ukazuje, jak vytvořit a spravovat zapůjčení kontejnerů pomocí klientské knihovny Azure Storage pro JavaScript. Klientskou knihovnu můžete použít k získání, obnovení, uvolnění a přerušení zapůjčení kontejnerů.

Předpoklady

  • Příklady v tomto článku předpokládají, že už máte projekt nastavený tak, aby fungoval s klientskou knihovnou Azure Blob Storage pro JavaScript. Další informace o nastavení projektu, včetně instalace balíčku, importu modulů a vytvoření autorizovaného klientského objektu pro práci s datovými prostředky, najdete v tématu Začínáme se službou Azure Blob Storage a JavaScriptem.
  • Autorizační mechanismus musí mít oprávnění pro práci s zapůjčením kontejneru. Další informace najdete v pokynech k autorizaci pro následující operaci rozhraní REST API:

O zapůjčení kontejnerů

Zapůjčení vytvoří a spravuje zámek kontejneru pro operace odstranění. Doba trvání zámku může být 15 až 60 sekund nebo může být nekonečná. Zapůjčení kontejneru poskytuje výhradní přístup k odstranění kontejneru. Zapůjčení kontejneru řídí pouze možnost odstranění kontejneru pomocí operace Odstranit rozhraní REST API kontejneru . Pokud chcete odstranit kontejner s aktivním zapůjčením, musí klient do žádosti o odstranění zahrnout aktivní ID zapůjčení. Všechny ostatní operace kontejneru jsou úspěšné u zapůjčeného kontejneru bez ID zapůjčení. Pokud jste povolili obnovitelné odstranění kontejneru, můžete odstraněné kontejnery obnovit.

Další informace o stavech zapůjčení a o tom, kdy můžete provést danou akci u zapůjčení, najdete v tématu Stavy zapůjčení a akce.

Operace zapůjčení zpracovává třída BlobLeaseClient , která poskytuje klienta obsahující všechny operace zapůjčení objektů blob a kontejnerů. Další informace o zapůjčení objektů blob pomocí klientské knihovny najdete v tématu Vytváření a správa zapůjčení objektů blob pomocí JavaScriptu.

Získání zapůjčení

Když získáte zapůjčení kontejneru, získáte ID zapůjčení, které váš kód může použít k provozu s kontejnerem. Pokud už kontejner má aktivní zapůjčení, můžete požádat pouze o nové zapůjčení pomocí id aktivního zapůjčení. Můžete ale zadat novou dobu zapůjčení.

Pokud chcete získat zapůjčení, vytvořte instanci třídy BlobLeaseClient a pak použijte jednu z následujících metod:

Následující příklad získá 30sekundové zapůjčení kontejneru:

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

Prodloužení zapůjčení

Pokud ID zapůjčení zadané v požadavku odpovídá ID zapůjčení přidruženému ke kontejneru, můžete prodloužit zapůjčení kontejneru. Zapůjčení je možné obnovit i v případě, že vypršela jeho platnost, pokud se od vypršení platnosti tohoto zapůjčení znovu nepropůjčí kontejner. Když prodloužíte zapůjčení, doba trvání zapůjčení se resetuje.

Pokud chcete prodloužit zapůjčení, použijte pro instanci BlobLeaseClient jednu z následujících metod:

Následující příklad obnoví zapůjčení kontejneru:

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

Uvolnění zapůjčení

Zapůjčení kontejneru můžete uvolnit, pokud ID zapůjčení zadané v požadavku odpovídá ID zapůjčení přidruženému ke kontejneru. Uvolnění zapůjčení umožňuje jinému klientovi získat zapůjčení kontejneru okamžitě po dokončení vydání.

Zapůjčení můžete uvolnit pomocí jedné z následujících metod v instanci BlobLeaseClient :

Následující příklad uvolní zapůjčení kontejneru:

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

Přerušení zapůjčení

Pokud má kontejner aktivní zapůjčení, můžete přerušit zapůjčení kontejneru. Jakákoli autorizovaná žádost může přerušit zapůjčení; požadavek není nutný k zadání odpovídajícího ID zapůjčení. Zapůjčení se nedá obnovit po přerušení a přerušení zapůjčení zabrání získání nového zapůjčení, dokud nevyprší platnost původního zapůjčení nebo se uvolní.

Zapůjčení můžete přerušit pomocí jedné z následujících metod v instanci BlobLeaseClient :

Následující příklad přeruší zapůjčení kontejneru:

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

Stavy a akce zapůjčení

Následující diagram znázorňuje pět stavů zapůjčení a příkazy nebo události, které způsobují změny stavu zapůjčení.

A diagram showing container lease states and state change triggers.

Následující tabulka uvádí pět stavů zapůjčení, uvádí stručný popis jednotlivých stavů a uvádí akce zapůjčení povolené v daném stavu. Tyto akce zapůjčení způsobují přechody stavu, jak je znázorněno v diagramu.

Stav zapůjčení Popis Povolené akce zapůjčení
K dispozici Zapůjčení je odemknuté a dá se získat. acquire
Pronajatých Zapůjčení je uzamčeno. acquire (pouze stejné ID zapůjčení), renew, change, releasea break
Platnost vypršela Doba trvání zapůjčení vypršela. acquire, renew, releasea break
Lámání Zapůjčení bylo přerušeno, ale zapůjčení bude nadále uzamčeno, dokud nevypršela doba přerušení. release a break
Zlomené Zapůjčení bylo přerušeno a doba přerušení vypršela. acquire, releasea break

Po vypršení zapůjčení bude ID zapůjčení udržováno službou Blob Service, dokud se kontejner znovu nezmění nebo zapůjčí. Klient se může pokusit obnovit nebo uvolnit zapůjčení pomocí ID zapůjčení, jehož platnost vypršela. Pokud požadavek selže, klient ví, že byl kontejner znovu zapůjčen, nebo se kontejner odstranil od poslední aktivní zapůjčení.

Pokud vyprší platnost zapůjčení místo explicitního uvolnění, klient může muset počkat až jednu minutu, než bude možné pro kontejner získat nové zapůjčení. Klient však může zapůjčení obnovit okamžitě s ID zapůjčení, jehož platnost vypršela.

Zdroje informací

Další informace o správě zapůjčení kontejnerů pomocí klientské knihovny Azure Blob Storage pro JavaScript najdete v následujících zdrojích informací.

Operace rozhraní REST API

Sada Azure SDK pro JavaScript obsahuje knihovny, které jsou postavené na rozhraní Azure REST API a umožňují interakci s operacemi rozhraní REST API prostřednictvím známých paradigmat JavaScriptu. Metody klientské knihovny pro správu zapůjčení kontejnerů používají následující operaci rozhraní REST API:

Ukázky kódu

Prostředky klientské knihovny

Viz také