Vytváření a správa zapůjčení objektů blob pomocí JavaScriptu nebo TypeScriptu
Tento článek ukazuje, jak vytvořit a spravovat zapůjčení objektů blob 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í objektů blob.
Požadavky
- 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 objektu blob. Další informace najdete v pokynech k autorizaci pro následující operaci rozhraní REST API:
O zapůjčení objektů blob
Zapůjčení vytvoří a spravuje zámek objektu blob pro operace zápisu a 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í objektu blob poskytuje výhradní přístup k zápisu a odstranění objektu blob. Pokud chcete zapisovat do objektu blob s aktivním zapůjčením, musí klient do žádosti o zápis zahrnout aktivní ID zapůjčení.
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.
Všechny operace kontejneru jsou povoleny v kontejneru, který zahrnuje objekty blob s aktivním zapůjčením, včetně odstranění kontejneru. Kontejner se proto může odstranit i v případě, že objekty blob v něm mají aktivní zapůjčení. Pomocí operace Zapůjčení kontejneru můžete řídit práva k odstranění kontejneru.
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í kontejnerů pomocí klientské knihovny najdete v tématu Vytváření a správa zapůjčení kontejnerů pomocí JavaScriptu.
Získání zapůjčení
Když získáte zapůjčení objektu blob, získáte ID zapůjčení, které váš kód může použít k provozu s objektem blob. Pokud objekt blob již 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í objektu blob:
async function acquireBlobLeaseAsync(blobClient) {
const leaseClient = blobClient.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é k objektu blob, můžete obnovit zapůjčení objektu blob. Zapůjčení se dá prodloužit i v případě, že vyprší jeho platnost, pokud se objekt blob od vypršení platnosti tohoto zapůjčení nezměnil nebo zapůjčený znovu. 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í objektu blob:
async function renewBlobLeaseAsync(blobClient, leaseID) {
const leaseClient = blobClient.getBlobLeaseClient(leaseID);
await leaseClient.renewLease();
}
Uvolnění zapůjčení
Zapůjčení objektu blob můžete uvolnit, pokud ID zapůjčení zadané v požadavku odpovídá ID zapůjčení přidružené k objektu blob. Uvolnění zapůjčení umožňuje jinému klientovi získat zapůjčení objektu blob okamžitě po dokončení vydání.
Zapůjčení můžete uvolnit pomocí jedné z následujících metod v instanci JavaScript BlobLeaseClient :
Následující příklad uvolní zapůjčení objektu blob:
async function releaseBlobLeaseAsync(blobClient, leaseID) {
const leaseClient = blobClient.getBlobLeaseClient(leaseID);
await leaseClient.releaseLease();
}
Přerušení zapůjčení
Pokud má objekt blob aktivní zapůjčení, můžete přerušit zapůjčení objektu blob. 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í objektu blob:
async function breakBlobLeaseAsync(blobClient) {
const leaseClient = blobClient.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í.
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í |
---|---|---|
Dostupný | Zapůjčení je odemknuté a dá se získat. | acquire |
Pronajatý | Zapůjčení je uzamčeno. | acquire (pouze stejné ID zapůjčení), renew , change , release a break |
Platnost vypršela | Doba trvání zapůjčení vypršela. | acquire , renew , release a 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 |
Rozbitý | Zapůjčení bylo přerušeno a doba přerušení vypršela. | acquire , release a break |
Po vypršení zapůjčení je ID zapůjčení udržováno službou Blob Service, dokud se objekt blob 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 je tato operace úspěšná, klient ví, že se objekt blob od posledního platnosti ID zapůjčení nezměnil. Pokud požadavek selže, klient ví, že se objekt blob změnil nebo se objekt blob zapůjčený znovu od poslední aktivní zapůjčení. Klient pak musí získat nové zapůjčení objektu blob.
Pokud vyprší platnost zapůjčení místo explicitního uvolnění, klient může muset počkat až jednu minutu, než se pro objekt blob získá nové zapůjčení. Klient však může obnovit zapůjčení s ID zapůjčení okamžitě, pokud objekt blob nebyl změněn.
Zapůjčení nejde udělit pro snímek objektu blob, protože snímky jsou jen pro čtení. Vyžádání zapůjčení snímku způsobí stavový kód 400 (Bad Request)
.
Zdroje informací
Další informace o správě zapůjčení objektů blob pomocí klientské knihovny Azure Blob Storage pro JavaScript najdete v následujících zdrojích informací.
Ukázky kódu
- Zobrazení ukázek kódu JavaScriptu a TypeScriptu z tohoto článku (GitHub)
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í objektů blob používají následující operaci rozhraní REST API:
Prostředky klientské knihovny
Viz také
Související obsah
- Tento článek je součástí příručky pro vývojáře služby Blob Storage pro JavaScript nebo TypeScript. Další informace najdete v úplném seznamu článků příručky pro vývojáře v tématu Sestavení aplikace JavaScript/TypeScript.