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 så kan den vara 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.

  • Renewfö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 skaffa 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 gått ut.

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 Ställa in 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. En lista över giltiga format finns i Guid-konstruktor (sträng ).
x-ms-lease-action: <acquire ¦ renew ¦ change ¦ release ¦ break> acquire: Begär ett nytt lån. Om bloben inte har ett 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 en ny x-ms-lease-duration, inklusive negativ (-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 det låne-ID som anges i 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 löpte ut. När du förnyar ett lån återställs lånetidsklockan.

change: Version 2012-02-12 och senare. Ändrar låne-ID för ett aktivt lån. Ett change måste innehålla det aktuella låne-ID:t i x-ms-lease-idoch ett nytt låne-ID i x-ms-proposed-lease-id.

release: Frigör lånet. Du kan frigöra lånet om det låne-ID som anges i begäran matchar det som är associerat med bloben. Genom att frigöra lånet kan en annan klient omedelbart hämta lånet för bloben så snart lanseringen ä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 kan låneperioden 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, vilket innebär att en annan klient omedelbart kan hämta lånet för 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 på 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 den är längre används den återstående tiden för lånet. Ett nytt lån kommer inte att vara tillgängligt innan avbrottsperioden har gått ut, men lånet kan behållas längre än avbrottsperioden. 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 gått ut och ett oändligt lån bryts omedelbart.
x-ms-lease-duration: -1 ¦ n seconds Version 2012-02-12 och senare. Tillåts endast och krävs för en acquire åtgärd. Anger lånets varaktighet, 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 acquireoch 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. En lista över giltiga format finns i Guid-konstruktor (sträng ).
Origin Valfritt. Anger ursprunget som begäran utfärdas från. 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 loggning 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.

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 eller tjänstens huvudnamn ska kunna anropa Lease Blob åtgärden och den minst privilegierade inbyggda Azure RBAC-rollen som innehåller den här åtgärden:

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 tid 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 skaffar 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:

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:

Det är inte nödvändigt att 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 Lånecontainer 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.

Diagram som visar bloblåntillstånd och utlösare för tillståndsändring.

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 kan förnyas 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 Upplåst lån
Förnybart lån Leasade Upphörd
Icke-förnybart lån Bryta Bruten, tillgänglig
  • Available: Lånet är upplå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, releaseoch break.

  • Expired: Lånetiden har upphört att gälla. Tillåtna åtgärder: acquire, renew, releaseoch break.

  • 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 och break.

  • Broken: Lånet har brutits och brytperioden har upphört att gälla. Tillåtna åtgärder: acquire, releaseoch break.

När ett lån har upphört att gälla underhålls låne-ID:t av Blob Storage tills blobben ändras eller hyrs ut igen. En klient kan försöka förnya eller frigöra lånet med 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 slä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. Om du begär ett lån mot en ögonblicksbild resulterar det 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äver (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åtkompatibel (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, skrivningen lyckas Tillgänglig, skrivningen lyckas
Läsa med (A) Misslyckas (412) Leasad (A), läs lyckades Icke-bakåtkompatibelt (A) – läsningen lyckades Misslyckas (412) Misslyckas (412)
Läsa 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äs lyckades Icke-bakåtkompatibelt (A) – läsningen lyckades Bruten (A), läsning lyckas Har upphört att gälla (A), läsningen lyckades

Utfall 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) Leasad (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 returnerar 400 Bad Request – Missing required headertjä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 blobtjänsten . Program som anropade release och sedan anropade renew måste nu spara ETag från versionsanropet. Sedan måste program anropa acquire, med en If-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 blobtjä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