Låna blob
Åtgärden Lease Blob
skapar och hanterar ett lås på en blob för skriv- och borttagningsåtgärder. Låsets varaktighet kan vara mellan 15 och 60 sekunder eller oändlig. I versioner före 2012-02-12 är låsets varaktighet 60 sekunder.
Viktigt
Från och med version 2012-02-12 skiljer sig vissa beteenden för Lease Blob
åtgärden från tidigare versioner. I tidigare versioner kan du till exempel förnya ett lån när du har släppt det. Från och med version 2012-02-12 misslyckas den här lånebegäran, men anrop som använder äldre versioner av Lease Blob
lyckas fortfarande. En lista över ändringar i beteendet för den här åtgärden finns i avsnittet "Kommentarer" senare i den här artikeln.
Du kan anropa åtgärden Lease Blob
i något av följande lägen:
Acquire
, för att begära ett nytt lån.Renew
, för att förnya ett befintligt lån.Change
, för att ändra ID:t för ett befintligt lån.Release
, för att frigöra lånet om det inte längre behövs, så att en annan klient omedelbart kan hämta ett lån mot bloben.Break
, för att avsluta lånet, men se till att en annan klient inte kan skaffa ett nytt lån förrän den aktuella låneperioden har upphört att gälla.
Förfrågan
Du kan skapa begäran på Lease Blob
följande sätt. HTTPS rekommenderas. Ersätt myaccount med namnet på ditt lagringskonto.
URI för PUT-metodbegäran | HTTP-version |
---|---|
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=lease |
HTTP/1.1 |
Emulerad lagringstjänst-URI
När du gör en begäran mot den emulerade lagringstjänsten anger du emulatorns värdnamn och Azure Blob Storage port som 127.0.0.1:10000
, följt av namnet på det emulerade lagringskontot.
URI för PUT-metodbegäran | HTTP-version |
---|---|
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=lease |
HTTP/1.0 HTTP/1.1 |
Mer information finns i Använda Azurite-emulatorn för lokal Azure Storage-utveckling.
URI-parametrar
Du kan ange följande ytterligare parameter i begärande-URI:n.
Parameter | Beskrivning |
---|---|
timeout |
Valfritt. Parametern timeout uttrycks i sekunder. Mer information finns i Ange tidsgränser för Blob Storage-åtgärder. |
Begärandehuvuden
I följande tabell beskrivs obligatoriska och valfria begärandehuvuden.
Begärandehuvud | Beskrivning |
---|---|
Authorization |
Krävs. Anger auktoriseringsschema, kontonamn och signatur. Mer information finns i Auktorisera begäranden till Azure Storage. |
Date eller x-ms-date |
Krävs. Anger Coordinated Universal Time (UTC) för begäran. Mer information finns i Auktorisera begäranden till Azure Storage. |
x-ms-version |
Valfritt. Anger vilken version av åtgärden som ska användas för den här begäran. Mer information finns i Versionshantering för Azure Storage-tjänsterna. |
x-ms-lease-id: <ID> |
Krävs för att förnya, ändra eller frigöra lånet. Du kan ange värdet x-ms-lease-id för i valfritt giltigt GUID-strängformat. Se Guid-konstruktor (sträng) för en lista över giltiga format. |
x-ms-lease-action: <acquire ¦ renew ¦ change ¦ release ¦ break> |
acquire : Begär ett nytt lån. Om bloben inte har något aktivt lån skapar Blob Storage ett lån för bloben och returnerar ett nytt låne-ID. Om bloben har ett aktivt lån kan du bara begära ett nytt lån med hjälp av det aktiva låne-ID:t. Du kan dock ange ett nytt x-ms-lease-duration , inklusive negativt (-1) för ett lån som aldrig upphör att gälla.renew : Förnyar lånet. Du kan förnya lånet om låne-ID:t som anges på begäran matchar det som är associerat med bloben. Observera att lånet kan förnyas även om det har upphört att gälla, så länge blobben inte har ändrats eller hyrts igen sedan lånet upphör att gälla. När du förnyar ett lån återställs lånetiden.change : Version 2012-02-12 och senare. Ändrar låne-ID för ett aktivt lån. Ett change måste innehålla aktuellt låne-ID i x-ms-lease-id och ett nytt låne-ID i x-ms-proposed-lease-id .release : Släpper lånet. Du kan frigöra lånet om låne-ID:t som anges på begäran matchar det som är associerat med bloben. Om du släpper lånet kan en annan klient omedelbart hämta lånet för blobben så snart versionen är klar.break : Bryter lånet om bloben har ett aktivt lån. När ett lån har brutits kan det inte förnyas. Alla auktoriserade begäranden kan bryta lånet; begäran krävs inte för att ange ett matchande låne-ID. När ett lån bryts tillåts låneperioden att förflutit, under vilken tid break och release är de enda låneåtgärder som du kan utföra på bloben. När ett lån har brutits anger svaret intervallet i sekunder tills ett nytt lån kan förvärvas.Ett lån som har brutits kan också frisläppas, i vilket fall en annan klient omedelbart kan hämta lånet på bloben. |
x-ms-lease-break-period: N |
Valfritt. Version 2012-02-12 och senare. För en break åtgärd är detta den föreslagna varaktigheten för sekunder som lånet ska fortsätta innan det bryts, mellan 0 och 60 sekunder. Den här brytperioden används bara om den är kortare än den tid som återstår för lånet. Om det är längre används den återstående tiden för lånet. Ett nytt lån kommer inte att vara tillgängligt innan brytperioden har gått ut, men lånet kan hållas längre än brytperioden. Om det här huvudet inte visas med en break åtgärd bryts ett lån med fast varaktighet efter att den återstående låneperioden har förflutit och ett oändligt lån bryts omedelbart. |
x-ms-lease-duration: -1 ¦ n seconds |
Version 2012-02-12 och senare. Tillåts och krävs endast för en acquire åtgärd. Anger varaktigheten för lånet, i sekunder eller negativt (-1) för ett lån som aldrig upphör att gälla. Ett icke-oändligt lån kan vara mellan 15 och 60 sekunder. En lånetid kan inte ändras med hjälp renew av eller change . |
x-ms-proposed-lease-id: <ID> |
Version 2012-02-12 och senare. Valfritt för acquire och krävs för change . Föreslaget låne-ID i ett GUID-strängformat. Blob Storage returnerar 400 (Invalid request) om det föreslagna låne-ID:t inte har rätt format. Se Guid-konstruktor (sträng) för en lista över giltiga format. |
Origin |
Valfritt. Anger ursprunget från vilket begäran utfärdas. Förekomsten av det här huvudet resulterar i CORS-huvuden (cross-origin resource sharing) i svaret. Mer information finns i CORS-stöd för Lagringstjänster . |
x-ms-client-request-id |
Valfritt. Tillhandahåller ett klientgenererat, täckande värde med en teckengräns på 1 kibibyte (KiB) som registreras i loggarna när loggningen har konfigurerats. Vi rekommenderar starkt att du använder det här huvudet för att korrelera aktiviteter på klientsidan med begäranden som servern tar emot. Mer information finns i Övervaka Azure Blob Storage. |
Den här åtgärden stöder också användning av villkorsstyrda huvuden för att köra åtgärden, endast om ett angivet villkor uppfylls. Mer information finns i Ange villkorsstyrda rubriker för Blob Storage-åtgärder.
Begärandetext
Inga.
Exempelbegäran
Följande exempelbegäran visar hur du skaffar ett lån:
Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=lease HTTP/1.1
Request Headers:
x-ms-version: 2015-02-21
x-ms-lease-action: acquire
x-ms-lease-duration: -1
x-ms-proposed-lease-id: 1f812371-a41d-49e6-b123-f4b542e851c5
x-ms-date: <date>
Authorization: SharedKey testaccount1:esSKMOYdK4o+nGTuTyeOLBI+xqnqi6aBmiW4XI699+o=
Svarsåtgärder
Svaret innehåller en HTTP-statuskod och en uppsättning svarshuvuden.
Statuskod
Statuskoderna för lyckade lån som returneras för låneåtgärder är följande:
Acquire
: En lyckad åtgärd returnerar statuskoden 201 (skapad).Renew
: En lyckad åtgärd returnerar statuskoden 200 (OK).Change
: En lyckad åtgärd returnerar statuskoden 200 (OK).Release
: En lyckad åtgärd returnerar statuskoden 200 (OK).Break
: En lyckad åtgärd returnerar statuskoden 202 (godkänd).
Information om statuskoder finns i Status och felkoder.
Svarshuvuden
Svaret för den här åtgärden innehåller följande rubriker. Svaret kan också innehålla ytterligare standard-HTTP-huvuden. Alla standardhuvuden överensstämmer med HTTP/1.1-protokollspecifikationen.
Syntax | Description |
---|---|
ETag |
Innehåller ett värde som du kan använda för att utföra åtgärder villkorligt. Mer information finns i Ange villkorsstyrda rubriker för Blob Storage-åtgärder . Det här huvudet returneras för begäranden som görs mot version 2013-08-15 och senare, och ETag värdet är inom citattecken.Åtgärden Lease Blob ändrar inte den här egenskapen. |
Last-Modified |
Datum/tid då bloben senast ändrades. Mer information finns i Representation av datum-tidsvärden i rubriker. Alla skrivåtgärder på bloben, inklusive uppdateringar av blobens metadata eller egenskaper, ändrar blobens senast ändrade tid. Åtgärden Lease Blob ändrar inte den här egenskapen. |
x-ms-lease-id: <id> |
När du begär ett lån returnerar Blob Storage ett unikt låne-ID. När lånet är aktivt måste du inkludera låne-ID:t med en begäran om att skriva till blobben, eller förnya, ändra eller frigöra lånet. En lyckad förnyelseåtgärd returnerar också låne-ID:t för det aktiva lånet. |
x-ms-lease-time: seconds |
Ungefärlig tid som återstår i låneperioden, i sekunder. Det här huvudet returneras endast för en lyckad begäran om att avbryta lånet. Om pausen är omedelbar 0 returneras. |
x-ms-request-id |
Det här huvudet identifierar unikt den begäran som gjordes och kan användas för att felsöka begäran. Mer information finns i Felsöka API-åtgärder. |
x-ms-version |
Anger vilken version av Blob Storage som används för att köra begäran. Det här huvudet returneras för begäranden mot version 2009-09-19 och senare. |
Date |
Ett UTC-datum/tid-värde som anger den tid då svaret initierades. Tjänsten genererar det här värdet. |
Access-Control-Allow-Origin |
Returneras om begäran innehåller ett Origin huvud och CORS är aktiverat med en matchande regel. Det här huvudet returnerar värdet för ursprungsbegärans huvud vid en matchning. |
Access-Control-Expose-Headers |
Returneras om begäran innehåller ett Origin huvud och CORS är aktiverat med en matchande regel. Returnerar listan över svarshuvuden som ska exponeras för klienten eller utfärdaren av begäran. |
Access-Control-Allow-Credentials |
Returneras om begäran innehåller ett Origin huvud och CORS är aktiverat med en matchande regel som inte tillåter alla ursprung. Det här huvudet är inställt på true . |
x-ms-client-request-id |
Du kan använda det här huvudet för att felsöka begäranden och motsvarande svar. Värdet för det här huvudet är lika med värdet för x-ms-client-request-id huvudet, om det finns i begäran. Värdet är högst 1 024 synliga ASCII-tecken.
x-ms-client-request-id Om rubriken inte finns i begäran visas den inte i svaret. |
Själva svaret
Inga.
Exempelsvar
Följande är ett exempelsvar för en begäran om att skaffa ett lån:
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: 2015-02-21
x-ms-lease-id: 1f812371-a41d-49e6-b123-f4b542e851c5
Date: <date>
Auktorisering
Auktorisering krävs när du anropar en dataåtkomståtgärd i Azure Storage. Du kan auktorisera åtgärden enligt beskrivningen Lease Blob
nedan.
Viktigt
Microsoft rekommenderar att du använder Microsoft Entra ID med hanterade identiteter för att auktorisera begäranden till Azure Storage. Microsoft Entra ID ger överlägsen säkerhet och användarvänlighet jämfört med auktorisering av delad nyckel.
Azure Storage stöder användning av Microsoft Entra ID för att auktorisera begäranden till blobdata. Med Microsoft Entra ID kan du använda rollbaserad åtkomstkontroll i Azure (Azure RBAC) för att bevilja behörigheter till ett säkerhetsobjekt. Säkerhetsobjektet kan vara en användare, grupp, programtjänstens huvudnamn eller en hanterad Azure-identitet. Säkerhetsobjektet autentiseras av Microsoft Entra ID för att returnera en OAuth 2.0-token. Token kan sedan användas för att auktorisera en begäran mot Blob-tjänsten.
Mer information om auktorisering med Microsoft Entra ID finns i Auktorisera åtkomst till blobar med Microsoft Entra ID.
Behörigheter
Nedan visas den RBAC-åtgärd som krävs för att en Microsoft Entra användare, grupp, hanterad identitet eller tjänstens huvudnamn ska anropa Lease Blob
åtgärden och den minst privilegierade inbyggda Azure RBAC-rollen som inkluderar den här åtgärden:
- Azure RBAC-åtgärd:Microsoft.Storage/storageAccounts/blobServices/containers/blobar/write
- Minst privilegierad inbyggd roll:Storage Blob Data-deltagare
Mer information om hur du tilldelar roller med Azure RBAC finns i Tilldela en Azure-roll för åtkomst till blobdata.
Kommentarer
Ett lån på en blob ger exklusiv skriv- och borttagningsåtkomst till bloben. Om du vill skriva till en blob med ett aktivt lån måste en klient inkludera det aktiva låne-ID:t med skrivbegäran. Lånet beviljas för den period som anges när lånet förvärvas. Den här varaktigheten kan vara mellan 15 och 60 sekunder eller en oändlig varaktighet.
När en klient hämtar ett lån returneras ett låne-ID. Blob Storage genererar ett låne-ID om inget anges i begäran om att hämta. Klienten kan använda det här låne-ID:t för att förnya lånet, ändra sitt låne-ID eller frigöra lånet.
När ett lån är aktivt måste låne-ID:t inkluderas i begäran för någon av följande åtgärder:
Kopiera blob (låne-ID krävs för målblob)
Om låne-ID:t inte ingår misslyckas dessa åtgärder på en hyrd blob med 412 – Precondition failed
.
Följande åtgärder lyckas på en hyrd blob, utan att inkludera låne-ID:t:
Kopiera blob (inget låne-ID krävs för källbloben.)
Lease Blob (REST API) ( Inget låne-ID behövs för
x-ms-lease-action: break
.)
Du behöver inte inkludera låne-ID:t för GET
åtgärder på en blob som har ett aktivt lån. Alla åtgärder stöder dock GET
en villkorsstyrd låneparameter, där åtgärden endast fortsätter om låne-ID:t som ingår i begäran är giltigt.
Alla containeråtgärder tillåts på en container som innehåller blobar med ett aktivt lån, inklusive Ta bort container. Därför kan en container tas bort även om blobar i den har aktiva lån. Använd åtgärden Lease Container (Låna container ) för att kontrollera behörigheter för att ta bort en container.
Lånetillstånd
Följande diagram visar de fem tillstånden för ett lån och de kommandon eller händelser som orsakar ändringar i lånetillståndet.
Ett lån kan vara i något av dessa tillstånd, baserat på om lånet är låst eller olåst och om lånet är förnybart i det tillståndet. Låneåtgärderna som visas i föregående diagram orsakar tillståndsövergångar.
Förnyelsestatus | Låst lån | Olåst lån |
---|---|---|
Förnybart lån | Leasade | Upphörd |
Icke-förnybart lån | Bryta | Bruten, tillgänglig |
Available
: Lånet är olåst och kan förvärvas. Tillåten åtgärd:acquire
.Leased
: Lånet är låst. Tillåtna åtgärder:acquire
(endast samma låne-ID),renew
,change
,release
ochbreak
.Expired
: Lånetiden har upphört att gälla. Tillåtna åtgärder:acquire
,renew
,release
ochbreak
.Breaking
: Lånet har brutits, men lånet fortsätter att vara låst tills avbrottsperioden har gått ut. Tillåtna åtgärder:release
ochbreak
.Broken
: Lånet har brutits och avbrottsperioden har upphört att gälla. Tillåtna åtgärder:acquire
,release
ochbreak
.
När ett lån har upphört att gälla underhålls låne-ID:t av Blob Storage tills bloben ändras eller leasas igen. En klient kan försöka förnya eller frigöra lånet med hjälp av sitt utgångna låne-ID. Om åtgärden lyckas innebär det att bloben inte har ändrats sedan låne-ID:t senast var giltigt.
Om klienten försöker förnya eller släppa ett lån med sitt tidigare låne-ID och begäran misslyckas, ändrades eller hyrdes bloben igen eftersom klientens lån senast var aktivt. Klienten måste sedan skaffa ett nytt lån för bloben.
Om ett lån upphör att gälla i stället för att uttryckligen frisläppas kan en klient behöva vänta upp till en minut innan ett nytt lån kan hämtas för bloben. Klienten kan dock förnya lånet med sitt låne-ID omedelbart, om bloben inte har ändrats.
Observera att ett lån inte kan beviljas för en blobögonblicksbild eftersom ögonblicksbilder är skrivskyddade. Att begära ett lån mot en ögonblicksbild resulterar i statuskod 400 (felaktig begäran).
Blobens Last-Modified-Time
egenskap uppdateras inte av anrop till Lease Blob
.
Följande tabeller visar resultatet av åtgärder på blobar med lån i olika lånetillstånd. Bokstäverna (A), (B) och (C) representerar låne-ID:n och (X) representerar ett låne-ID som genereras av Blob Storage.
Utfall av användningsförsök på blobar efter lånetillstånd
Åtgärd | Tillgängligt | Leasad (A) | Icke-bakåtkompatibelt (A) | Bruten (A) | Har upphört att gälla (A) |
---|---|---|---|---|---|
Skriva med (A) | Misslyckas (412) | Leasad (A), skrivning lyckas | Icke-bakåtkompatibelt (A) och skrivning lyckas | Misslyckas (412) | Misslyckas (412) |
Skriva med (B) | Misslyckas (412) | Misslyckas (409) | Misslyckas (412) | Misslyckas (412) | Misslyckas (412) |
Skriv, inget lån har angetts | Tillgänglig, skriv lyckades | Misslyckas (412) | Misslyckas (412) | Tillgänglig, skriv lyckades | Tillgänglig, skriv lyckades |
Läsa med (A) | Misslyckas (412) | Leasad (A), läsning lyckas | Icke-bakåtkompatibel (A), läsning lyckas | Misslyckas (412) | Misslyckas (412) |
Läs med (B) | Misslyckas (412) | Misslyckas (409) | Misslyckas (409) | Misslyckas (412) | Misslyckas (412) |
Läs, inget lån har angetts | Tillgänglig, läsning lyckas | Leasad (A), läsning lyckas | Icke-bakåtkompatibel (A), läsning lyckas | Bruten (A), läsning lyckas | Har upphört att gälla (A), läsningen lyckas |
Resultat av låneåtgärder på blobar efter lånetillstånd
Åtgärd | Tillgängligt | Leasad (A) | Icke-bakåtkompatibelt (A) | Bruten (A) | Har upphört att gälla (A) |
---|---|---|---|---|---|
Acquire , inget föreslaget låne-ID |
Leasad (X) | Misslyckas (409) | Misslyckas (409) | Leasad (X) | Leasad (X) |
Acquire (A) |
Leasad (A) | Hyrd (A), ny varaktighet | Misslyckas (409) | Leasad (A) | Leasad (A) |
Acquire (B) |
Leasad (B) | Misslyckas (409) | Misslyckas (409) | Leasad (B) | Leasad (B) |
Break , period=0 |
Misslyckas (409) | Bruten (A) | Bruten (A) | Bruten (A) | Bruten (A) |
Break , period>0 |
Misslyckas (409) | Icke-bakåtkompatibelt (A) | Icke-bakåtkompatibelt (A) | Bruten (A) | Bruten (A) |
Change , (A) till (B) |
Misslyckas (409) | Leasad (B) | Misslyckas (409) | Misslyckas (409) | Misslyckas (409) |
Change , (B) till (A) |
Misslyckas (409) | Leasad (A) | Misslyckas (409) | Misslyckas (409) | Misslyckas (409) |
Change , (B) till (C) |
Misslyckas (409) | Misslyckas (409) | Misslyckas (409) | Misslyckas (409) | Misslyckas (409) |
Renew (A) |
Misslyckas (409) | Leasad (A), återställning av utgångsklocka | Misslyckas (409) | Misslyckas (409) | Leasad(A), om bloben inte har ändrats. Misslyckas (409) om bloben har ändrats. |
Renew (B) |
Misslyckas (409) | Misslyckas (409) | Misslyckas (409) | Misslyckas (409) | Misslyckas (409) |
Release (A) |
Misslyckas (409) | Tillgängligt | Tillgängligt | Tillgängligt | Tillgängligt |
Release (B) |
Misslyckas (409) | Misslyckas (409) | Misslyckas (409) | Misslyckas (409) | Misslyckas (409) |
Varaktigheten upphör att gälla | Tillgängligt | Har upphört att gälla (A) | Bruten (A) | Bruten (A) | Har upphört att gälla (A) |
Ändringar i lånebloben som introducerades i version 2012-02-12
I följande lista anges ändringar Lease Blob
i beteendet som introducerades i version 2012-02-12.
Ett anrop till för att
Lease Blob
skaffa ett lån måste nu innehålla en rubrik för lånetid. Om du försöker skaffa ett lån utan att ange en lånetid returnerar400 Bad Request – Missing required header
tjänsten .Du kan inte längre förnya ett lån när du har släppt det. Om du försöker göra det returnerar
409 Conflict – The lease ID specified did not match the lease ID for the blob
tjänsten . Program som anropade release och sedan anropade renew måste nu sparaETag
från versionsanropet. Sedan måste program anropa acquire, med enIf-Match
villkorsstyrd rubrik, för att hämta lånet endast när bloben är oförändrad.Du kan inte längre avbryta ett lån när du har släppt det. Om du försöker göra det returnerar
409 Conflict – There is currently no lease on the blob
tjänsten .Du kan nu bryta ett lån som bryter eller bryts, vilket gör avbrottsåtgärder idempotent. I tidigare versioner misslyckades detta med
409 Conflict – The lease has already been broken and cannot be broken again
. Med den här ändringen kan du förkorta varaktigheten för en paus. Om du bryter ett lån som är i ett icke-bakåtkompatibelt tillstånd och inkluderar en kortare varaktighet än den återstående avbrottsperioden används din kortare varaktighet.
Fakturering
Prisbegäranden kan komma från klienter som använder Blob Storage-API:er, antingen direkt via REST-API:et för Blob Storage eller från ett Azure Storage-klientbibliotek. Dessa begäranden ackumulerar avgifter per transaktion. Typen av transaktion påverkar hur kontot debiteras. Lästransaktioner ackumuleras till exempel till en annan faktureringskategori än skrivtransaktioner. I följande tabell visas faktureringskategorin för Lease Blob
begäranden baserat på lagringskontotypen:
Åtgärd | Typ av lagringskonto | Faktureringskategori |
---|---|---|
Låneblob (hämta, släppa, förnya) | Premium-blockblob Standard generell användning v2 |
Andra åtgärder |
Låneblob (hämta, släppa, förnya) | Standard generell användning v1 | Läsåtgärder |
Låneblob (bryt, ändra) | Premium-blockblob Standard generell användning v2 |
Andra åtgärder |
Låneblob (bryt, ändra) | Standard generell användning v1 | Skrivåtgärder |
Se även
new-blob-lease-features-infinite-leases-smaller-lease-times-and-more.aspx)
Auktorisera begäranden till Azure Storage
Status- och felkoder
Felkoder för Blob Storage
Lånecontainer