Zapůjčení kontejneru

Operace Lease Container 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á.

Operaci můžete volat Lease Container v jednom z následujících režimů:

  • Acquire, pokud chcete požádat o nové zapůjčení.

  • Renew, aby se obnovilo stávající zapůjčení.

  • Change, pokud chcete změnit ID existujícího zapůjčení.

  • Release, abyste uvolnili zapůjčení, pokud už ho nepotřebujete, aby jiný klient mohl okamžitě získat zapůjčení kontejneru.

  • Break, abyste zapůjčení ukončili, ale zajistili, že jiný klient nebude moct získat nové zapůjčení, dokud neuplyne aktuální doba zapůjčení.

Poznámka

Operace Lease Container je dostupná ve verzi 2012-02-12 a novější.

Žádost

Požadavek můžete sestavit Lease Container následujícím způsobem. Doporučuje se https. Nahraďte myaccount názvem vašeho účtu úložiště.

Metoda Identifikátor URI žádosti Verze PROTOKOLU HTTP
PUT https://myaccount.blob.core.windows.net/mycontainer?comp=lease&restype=container HTTP/1.1

Pokud chcete zadat kořenový kontejner, jako název kontejneru zadejte $root .

Identifikátor URI služby emulovaného úložiště

Když vytvoříte požadavek na službu emulovaného úložiště, zadejte název hostitele emulátoru a Azure Blob Storage port jako 127.0.0.1:10000, následovaný názvem emulovaného účtu úložiště.

Metoda Identifikátor URI žádosti Verze PROTOKOLU HTTP
PUT http://127.0.0.1:10000/mycontainer?comp=lease&restype=container HTTP/1.0

HTTP/1.1

Další informace najdete v tématu Použití emulátoru Azurite pro vývoj v místním úložišti Azure Storage.

Parametry identifikátoru URI

V identifikátoru URI požadavku můžete zadat následující další parametr.

Parametr Popis
timeout Nepovinný parametr. Parametr se timeout vyjadřuje v sekundách. Další informace najdete v tématu Nastavení časových limitů pro operace služby Blob Storage.

Hlavičky požadavku

Následující tabulka popisuje požadované a volitelné hlavičky požadavků.

Hlavička požadavku Popis
Authorization Povinná hodnota. Určuje schéma autorizace, název účtu a podpis. Další informace najdete v tématu Autorizace požadavků do služby Azure Storage.
Date nebo x-ms-date Povinná hodnota. Určuje formát UTC (Coordinated Universal Time). Další informace najdete v tématu Autorizace požadavků do služby Azure Storage.
x-ms-version Nepovinný parametr. Určuje verzi operace, která se má pro tento požadavek použít. Další informace najdete v tématu Správa verzí pro služby Azure Storage.
x-ms-lease-id: <ID> Vyžaduje se k prodloužení, změně nebo uvolnění zapůjčení.

Hodnotu můžete zadat v libovolném platném x-ms-lease-id formátu řetězce GUID. Seznam platných formátů najdete v tématu Konstruktor Guid (String).
x-ms-lease-action: <acquire ¦ renew ¦ change ¦ release ¦ break> acquire: Požádá o nové zapůjčení. Pokud kontejner nemá aktivní zapůjčení, blob Storage vytvoří zapůjčení kontejneru a vrátí nové ID zapůjčení. Pokud má kontejner aktivní zapůjčení, můžete o nové zapůjčení požádat pouze pomocí ID aktivního zapůjčení. Můžete ale zadat nový x-ms-lease duration, včetně záporné hodnoty (-1) pro zapůjčení, jehož platnost nikdy nevyprší.

renew: Prodlouží zapůjčení. Zapůjčení můžete obnovit, pokud ID zapůjčení zadané v žádosti odpovídá ID přidružené ke kontejneru. Mějte na paměti, že zapůjčení je možné obnovit i v případě, že jeho platnost vypršela, pokud se kontejner od vypršení platnosti zapůjčení znovu nepronajal. Při obnovení zapůjčení se resetují hodiny doby trvání zapůjčení.

change: Změňte ID zapůjčení aktivního zapůjčení. Objekt change musí obsahovat aktuální ID zapůjčení v x-ms-lease-ida nové ID zapůjčení v x-ms-proposed-lease-id.

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

break: Přerušení zapůjčení, pokud má kontejner aktivní zapůjčení. Když je zapůjčení přerušené, nepůjde obnovit. Jakákoli autorizovaná žádost může zapůjčení přerušit. Požadavek není nutný k zadání odpovídajícího ID zapůjčení. Když je zapůjčení přerušené, může uplynout období přerušení zapůjčení. Během této doby můžete provádět break pouze operace zapůjčení a release zapůjčení kontejneru. Když se zapůjčení úspěšně přeruší, odpověď indikuje interval v sekundách, než bude možné získat nové zapůjčení.

Můžete také uvolnit zapůjčení, které bylo přerušeno. Klient může okamžitě získat zapůjčení kontejneru, které bylo uvolněno.
x-ms-lease-break-period: N Nepovinný parametr. break U operace je tato hlavička navrženou dobou trvání zapůjčení, než se přeruší, mezi 0 a 60 sekund. Toto období přestávky se použije jenom v případě, že je kratší než zbývající doba zapůjčení. Pokud je delší, použije se zbývající čas zapůjčení. Nové zapůjčení nebude k dispozici před vypršením doby pozastavení, ale zapůjčení může být drženo déle, než je doba pozastavení. Pokud se tato hlavička nezobrazí u break operace, zapůjčení s pevnou dobou trvání se po uplynutí zbývající doby zapůjčení přeruší a nekonečné zapůjčení se okamžitě přeruší.
x-ms-lease-duration: -1 ¦ n seconds Vyžaduje se pro acquire. Určuje dobu zapůjčení v sekundách nebo zápornou dobu (-1) pro zapůjčení, jehož platnost nikdy nevyprší. Nenekonečná zapůjčení může být mezi 15 a 60 sekund. Dobu zapůjčení není možné změnit pomocí nebo renewchange.
x-ms-proposed-lease-id: <ID> Volitelné pro acquirea povinné pro change. Navrhované ID zapůjčení ve formátu řetězce GUID Blob Storage se vrátí 400 (Invalid request) , pokud navrhované ID zapůjčení není ve správném formátu. Seznam platných formátů najdete v tématu Konstruktor Guid (String).
Origin Nepovinný parametr. Určuje původ, ze kterého je žádost vystavena. Přítomnost této hlavičky má za následek hlavičky sdílení prostředků mezi zdroji (CORS) v odpovědi. Podrobnosti najdete v tématu Podpora CORS pro služby Storage .
x-ms-client-request-id Nepovinný parametr. Poskytuje klientem vygenerovanou neprůselnou hodnotu s limitem počtu znaků 1 kibibajt (KiB), který je zaznamenán v protokolech při konfiguraci protokolování. Důrazně doporučujeme použít tuto hlavičku ke korelaci aktivit na straně klienta s požadavky, které server přijímá. Další informace najdete v tématu Monitorování Azure Blob Storage.

Tato operace také podporuje použití podmíněných hlaviček ke spuštění operace pouze v případě, že je splněna zadaná podmínka. Další informace najdete v tématu Určení podmíněných hlaviček pro operace služby Blob Storage.

Text požadavku

Žádné

Ukázkový požadavek

Následující ukázkový požadavek ukazuje, jak získat zapůjčení:

  
Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=lease HTTP/1.1  
  
Request Headers:  
x-ms-version: 2012-02-12  
x-ms-lease-action: acquire  
x-ms-lease-duration: -1  
x-ms-proposed-lease-id: 1f812371-a41d-49e6-b123-f4b542e851c5  
x-ms-date: Thu, 26 Jan 2012 23:30:18 GMT  
Authorization: SharedKey testaccount1:esSKMOYdK4o+nGTuTyeOLBI+xqnqi6aBmiW4XI699+o=  
  

Odpověď

Odpověď obsahuje stavový kód HTTP a sadu hlaviček odpovědi.

Stavový kód

Stavové kódy úspěchu vrácené pro operace zapůjčení jsou následující:

  • Acquire: Úspěšná operace vrátí stavový kód 201 (Vytvořeno).

  • Renew: Úspěšná operace vrátí stavový kód 200 (OK).

  • Change: Úspěšná operace vrátí stavový kód 200 (OK).

  • Release: Úspěšná operace vrátí stavový kód 200 (OK).

  • Break: Úspěšná operace vrátí stavový kód 202 (přijato).

Informace o stavových kódech najdete v tématu Stavové kódy a kódy chyb.

Hlavičky odpovědi

Odpověď na tuto operaci obsahuje následující hlavičky. Odpověď může také obsahovat další standardní hlavičky HTTP. Všechny standardní hlavičky odpovídají specifikaci protokolu HTTP/1.1.

Syntax Description
ETag Hodnota ETag pro kontejner. Tato hlavička se vrátí pro požadavky provedené ve verzi 2013-08-15 a novější a ETag hodnota je v uvozovkách. Lease Container operace provedené ve verzi 2013-08-15 a novější tuto vlastnost neupravují, ale předchozí verze ano.
Last-Modified Vráceno pro žádosti provedené ve verzi 2013-08-15 a novější. Vrátí datum a čas poslední změny kontejneru. Další informace najdete v tématu Reprezentace hodnot data a času v záhlavích.

Každá operace, která upraví kontejner nebo jeho vlastnosti či metadata, aktualizuje čas poslední změny. To zahrnuje nastavení oprávnění kontejneru. Operace s objekty blob nemají vliv na čas poslední změny kontejneru. Lease Container operace provedené ve verzi 2013-08-15 a novější tuto vlastnost neupravují, ale předchozí verze ano.
x-ms-lease-id: <id> Když požádáte o zapůjčení, vrátí Blob Storage jedinečné ID zapůjčení. Pokud je zapůjčení aktivní, musíte id zapůjčení zahrnout do všech žádostí o odstranění kontejneru nebo prodloužení, změnu nebo uvolnění zapůjčení.

Operace úspěšného obnovení také vrátí ID zapůjčení aktivního zapůjčení.
x-ms-lease-time: seconds Přibližný zbývající čas v období zapůjčení v sekundách Tato hlavička se vrátí pouze pro úspěšný požadavek na přerušení zapůjčení. Pokud je přerušení okamžité, vrátí se hodnota 0.
x-ms-request-id Tato hlavička jednoznačně identifikuje požadavek, který byl proveden, a dá se použít k řešení potíží s požadavkem. Další informace najdete v tématu Řešení potíží s operacemi rozhraní API.
x-ms-version Označuje verzi služby Blob Storage použitou ke spuštění požadavku. Tato hlavička se vrátí pro požadavky provedené ve verzi 2009-09-19 a novější.
Datum Hodnota data a času UTC, která označuje čas, kdy byla odpověď zahájena. Tato služba vygeneruje tuto hodnotu.
Access-Control-Allow-Origin Vrátí se, pokud požadavek obsahuje hlavičku Origin a CORS je povolený s odpovídajícím pravidlem. Tato hlavička vrátí hodnotu hlavičky původního požadavku v případě shody.
Access-Control-Expose-Headers Vrátí se, pokud požadavek obsahuje hlavičku Origin a CORS je povolený s odpovídajícím pravidlem. Vrátí seznam hlaviček odpovědi, které mají být zpřístupněny klientovi nebo vystaviteli požadavku.
Access-Control-Allow-Credentials Vrátí se, pokud požadavek obsahuje hlavičku Origin a CORS je povolený s odpovídajícím pravidlem, které nepovoluje všechny zdroje. Toto záhlaví bude nastaveno na true.
x-ms-client-request-id Tuto hlavičku můžete použít k řešení potíží s požadavky a odpovídajícími odpověďmi. Hodnota této hlavičky se rovná hodnotě x-ms-client-request-id hlavičky, pokud je v požadavku. Hodnota je maximálně 1 024 viditelných znaků ASCII. Pokud hlavička x-ms-client-request-id v požadavku není, nebude v odpovědi.

Text odpovědi

Žádné

Ukázková odpověď

Následuje ukázková odpověď na žádost o získání zapůjčení:

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: cc6b209a-b593-4be1-a38a-dde7c106f402  
x-ms-version: 2012-02-12  
x-ms-lease-id: 1f812371-a41d-49e6-b123-f4b542e851c5  
Date: Thu, 26 Jan 2012 23:30:18 GMT  
  

Autorizace

Při volání jakékoli operace přístupu k datům ve službě Azure Storage se vyžaduje autorizace. Operaci můžete autorizovat Lease Container , jak je popsáno v následujících částech.

Azure Storage podporuje autorizaci požadavků na data objektů blob pomocí Microsoft Entra ID. S Microsoft Entra ID můžete pomocí řízení přístupu na základě role v Azure (Azure RBAC) udělit oprávnění k objektu zabezpečení. Objektem zabezpečení může být uživatel, skupina, instanční objekt aplikace nebo spravovaná identita Azure. Objekt zabezpečení je ověřen Microsoft Entra ID, aby vrátil token OAuth 2.0. Token se pak dá použít k autorizaci požadavku ve službě Blob Storage.

Další informace o autorizaci pomocí Microsoft Entra ID najdete v tématu Autorizace přístupu k objektům blob pomocí Microsoft Entra ID.

Oprávnění

Následující akce RBAC jsou nezbytné pro volání operace Microsoft Entra uživatele, skupiny nebo instančního objektu Lease Container a nejméně privilegované integrované role Azure RBAC, která tuto akci zahrnuje:

Další informace o přiřazování rolí pomocí Azure RBAC najdete v tématu Přiřazení role Azure pro přístup k datům objektů blob.

Poznámky

Zapůjčení kontejneru poskytuje výhradní přístup k odstranění kontejneru. Zapůjčení kontejneru řídí pouze možnost odstranit kontejner pomocí operace Odstranit kontejner . Pokud chcete odstranit kontejner s aktivním zapůjčením, musí klient do žádosti o odstranění zahrnout ID aktivního zapůjčení. Pokud ID zapůjčení není zahrnuto, operace selže s chybou 412 (předběžná podmínka selhala). Všechny ostatní operace kontejneru jsou u zapůjčeného kontejneru úspěšné bez zahrnutí ID zapůjčení. Zapůjčení se uděluje na dobu určenou při získání zapůjčení, což může být 15 až 60 sekund nebo nekonečná doba trvání.

Když klient získá zapůjčení, vrátí se ID zapůjčení. Blob Storage vygeneruje ID zapůjčení, pokud není zadané v žádosti o získání. Klient může toto ID zapůjčení použít k prodloužení zapůjčení, ke změně ID zapůjčení nebo k uvolnění zapůjčení. Následující diagram znázorňuje možné stavy zapůjčení a příkazy nebo události, které způsobují změny stavu zapůjčení.

Diagram stavů zapůjčení kontejneru a aktivačních událostí změny stavu

Zapůjčení může být v jednom z pěti stavů na základě toho, jestli je zapůjčení uzamčené nebo odemčené a jestli je zapůjčení v daném stavu obnovitelné. Akce zapůjčení zobrazené v předchozím diagramu způsobují přechody stavu.

Stav prodloužení Uzamčené zapůjčení Odemčené zapůjčení
Pronájem obnovitelných zdrojů Pronajatých Platnost vypršela
Neobnovitelné zapůjčení Narušující Nefunkční, k dispozici
  • Available, zapůjčení je odemknuté a lze jej získat. Povolená akce: acquire.

  • Leased, zapůjčení je uzamčeno. Povolené akce: acquire (pouze stejné ID zapůjčení), renew, change, releasea break.

  • Expired, doba zapůjčení vypršela. Povolené akce: acquire, renewrelease, a break.

  • Breaking, zapůjčení bylo přerušeno, ale zapůjčení bude dál uzamčeno, dokud nevypršela doba přerušení. Povolené akce: release a break.

  • Broken, zapůjčení bylo přerušeno a vypršela doba přerušení. Povolené akce: acquire, releasea break.

Blob Storage udržuje ID zapůjčení po vypršení platnosti zapůjčení kontejneru. Klient může prodloužit nebo uvolnit zapůjčení pomocí ID zapůjčení, jehož platnost vypršela. Pokud se klient pokusí prodloužit nebo uvolnit zapůjčení, jehož platnost vypršela, s předchozím ID zapůjčení a požadavek selže, pak se kontejner znovu zapůjčí nebo odstraní, protože zapůjčení klienta bylo naposledy aktivní.

Pokud zapůjčení vyprší místo explicitního vydání, může klient čekat až jednu minutu, než bude možné získat nové zapůjčení kontejneru. Klient však může okamžitě prodloužit zapůjčení s ID zapůjčení, jehož platnost vypršela.

Vlastnost kontejneru Last-Modified-Time se neaktualizuje voláním .Lease Container

Následující tabulky ukazují výsledky akcí u kontejnerů s zapůjčením v různých stavech zapůjčení. Písmena (A), (B) a (C) představují ID zapůjčení a (X) představuje ID zapůjčení vygenerované službou Blob Storage.

Výsledky pokusů o použití kontejnerů podle stavu zapůjčení

Akce K dispozici. Zapůjčeno (A) Rozbít (A) Poškozené (A) Vypršela (A)
Odstranit pomocí (A) Selhání (412) Zapůjčeno (A), odstranění proběhlo úspěšně Přerušení (A), odstranění proběhlo úspěšně Selhání (412) Selhání (412)
Odstranit pomocí (B) Selhání (412) Selhání (409) Selhání (412) Selhání (412) Selhání (412)
Odstranit, nezadá se zapůjčení K dispozici, odstranění proběhlo úspěšně Selhání (412) Selhání (412) K dispozici, odstranění proběhlo úspěšně K dispozici, odstranění proběhlo úspěšně
Další operace s (A) Selhání (412) Zapůjčeno (A), operace je úspěšná Přerušení (A), operace je úspěšná Selhání (412) Selhání (412)
Další operace s (B) Selhání (412) Selhání (409) Selhání (409) Selhání (412) Selhání (412)
Operace, nezadá se zapůjčení K dispozici, operace je úspěšná Zapůjčeno (A), operace je úspěšná Přerušení (A), operace je úspěšná Přerušeno (A), operace je úspěšná Vypršela (A), operace je úspěšná

Výsledky operací zapůjčení kontejnerů podle stavu zapůjčení

Akce K dispozici. Zapůjčeno (A) Rozbít (A) Poškozené (A) Vypršela (A)
Acquire, žádné navrhované ID zapůjčení Zapůjčeno (X) Selhání (409) Selhání (409) Zapůjčeno (X) Zapůjčeno (X)
Acquire (A) Zapůjčeno (A) Zapůjčeno (A), nová doba trvání Selhání (409) Zapůjčeno (A) Zapůjčeno (A)
Acquire (B) Pronajaté (B) Selhání (409) Selhání (409) Pronajaté (B) Pronajaté (B)
Break, tečka=0 Selhání (409) Nefunkční (A) Nefunkční (A) Nefunkční (A) Nefunkční (A)
Break, období>0 Selhání (409) Lámání (A) Lámání (A) Nefunkční (A) Nefunkční (A)
Change, (A) až (B) Selhání (409) Pronajaté (B) Selhání (409) Selhání (409) Selhání (409)
Change, (B) až (A) Selhání (409) Zapůjčeno (A) Selhání (409) Selhání (409) Selhání (409)
Change, (B) až (C) Selhání (409) Selhání (409) Selhání (409) Selhání (409) Selhání (409)
Renew (A) Selhání (409) Zapůjčení (A), resetování hodin vypršení platnosti Selhání (409) Selhání (409) Zapůjčeno (A)
Renew (B) Selhání (409) Selhání (409) Selhání (409) Selhání (409) Selhání (409)
Release (A) Selhání (409) K dispozici. K dispozici. K dispozici. K dispozici.
Release (B) Selhání (409) Selhání (409) Selhání (409) Selhání (409) Selhání (409)
Doba trvání vyprší K dispozici. Platnost vypršela (A) Nefunkční (A) Nefunkční (A) Platnost vypršela (A)

Fakturace

Požadavky na ceny můžou pocházet od klientů, kteří používají rozhraní API služby Blob Storage, a to buď přímo prostřednictvím rozhraní REST API služby Blob Storage, nebo z klientské knihovny služby Azure Storage. Za tyto žádosti se účtují poplatky za každou transakci. Typ transakce ovlivňuje způsob účtování za účet. Například transakce čtení se načítají do jiné kategorie fakturace než transakce zápisu. Následující tabulka uvádí kategorii fakturace pro Lease Container žádosti založené na typu účtu úložiště:

Operace Typ účtu úložiště Kategorie fakturace
Zapůjčení kontejneru (získání, vydání, prodloužení) Objekt blob bloku úrovně Premium
Standard pro obecné účely v2
Další operace
Zapůjčení kontejneru (získání, vydání, prodloužení) Standard pro obecné účely v1 Operace čtení
Zapůjčení kontejneru (přerušení, změna) Objekt blob bloku úrovně Premium
Standard pro obecné účely v2
Další operace
Zapůjčení kontejneru (přerušení, změna) Standard pro obecné účely v1 Operace zápisu

Informace o cenách pro zadanou kategorii fakturace najdete v tématu Azure Blob Storage Ceny.

Viz také

Autorizace požadavků do Služby Azure Storage
Stavové kódy a kódy chyb
Kódy chyb služby Blob Storage
Operace Lease Blob