Delen via


Leasebestand

De Lease File bewerking maakt en beheert een vergrendeling van een bestand voor schrijf- en verwijderbewerkingen. Lease File wordt ondersteund voor versie 2019-02-02 en hoger.

U kunt de Lease File bewerking aanroepen in een van de volgende modi:

  • Acquireom een nieuwe lease aan te vragen.
  • Changeom de id van een bestaande lease te wijzigen.
  • Releaseom de lease vrij te maken als deze niet meer nodig is, zodat een andere client onmiddellijk een lease kan verkrijgen op basis van het bestand.
  • Break, om de lease geforceerd te beëindigen, maar ervoor te zorgen dat een andere klant geen nieuwe lease kan verkrijgen totdat de huidige leaseperiode is verstreken.

Protocol beschikbaarheid

Bestandsshareprotocol ingeschakeld Beschikbaar
SMB Ja
NFS No

Aanvraag

U kunt de Lease File aanvraag als volgt samenstellen. HTTPS wordt aanbevolen.

Methode Aanvraag-URI HTTP-versie
Put https://myaccount.file.core.windows.net/myshare/mydirectory/myfile?comp=lease HTTP/1.1

Vervang de padonderdelen die in de aanvraag-URI worden weergegeven, als volgt door uw eigen:

Padonderdeel Description
myaccount De naam van uw opslagaccount.
myshare De naam van de bestandsshare.
mydirectorypath Optioneel. Het pad naar de map.
myfile De naam van het bestand.

URI-parameters

U kunt de volgende extra parameter opgeven voor de aanvraag-URI.

Parameter Beschrijving
timeout Optioneel. De timeout parameter wordt uitgedrukt in seconden. Zie Time-outs instellen voor Azure Files bewerkingen voor meer informatie.

Aanvraagheaders

In de volgende tabel worden vereiste en optionele aanvraagheaders beschreven.

Aanvraagheader Beschrijving
Authorization Vereist. Hiermee geeft u het autorisatieschema, de accountnaam en de handtekening. Zie Aanvragen voor Azure Storage autoriseren voor meer informatie.
Date of x-ms-date Vereist. Geef de Coordinated Universal Time (UTC) op voor de aanvraag. Zie Aanvragen voor Azure Storage autoriseren voor meer informatie.
x-ms-version Optioneel. Hiermee geeft u de versie van de bewerking te gebruiken voor deze aanvraag. Zie Versiebeheer voor de Azure Storage-services voor meer informatie.
x-ms-lease-id: <ID> Vereist om de lease te verlengen, te wijzigen of vrij te geven.

U kunt de waarde van x-ms-lease-id opgeven in elke geldige GUID-tekenreeksindeling. Zie Guid Constructor (String) voor een lijst met geldige notaties.
x-ms-lease-action: <acquire ¦ change ¦ release ¦ break> acquire: Vraagt een nieuwe lease aan. Als het bestand geen actieve lease heeft, maakt Azure Files een lease voor het bestand en retourneert een nieuwe lease-id. Als het bestand een actieve lease heeft, kunt u alleen een nieuwe lease aanvragen met behulp van de actieve lease-id.

change: Hiermee wijzigt u de lease-id van een actieve lease. Een change moet de huidige lease-id in x-ms-lease-idbevatten en een nieuwe lease-id in x-ms-proposed-lease-id.

release: geeft de lease vrij. U kunt de lease vrijgeven als de lease-id die is opgegeven in de aanvraag overeenkomt met de lease-id die is gekoppeld aan het bestand. Door de lease vrij te geven, kan een andere client onmiddellijk de lease voor het bestand verkrijgen zodra de release is voltooid.

break: Breekt de lease als het bestand een actieve lease heeft. Elke geautoriseerde aanvraag kan de lease verbreken. De aanvraag is niet vereist om een overeenkomende lease-id op te geven. Een oneindige lease wordt onmiddellijk verbroken.
x-ms-lease-duration: -1 Alleen toegestaan en vereist voor een acquire bewerking. Vereist om een lease aan te -1geven die nooit verloopt.
x-ms-proposed-lease-id: <ID> Optioneel voor acquireen vereist voor change. Voorgestelde lease-id, in een GUID-tekenreeksindeling. Azure Files retourneert 400 (Invalid request) als de voorgestelde lease-id niet de juiste indeling heeft. Zie Guid Constructor (String) voor een lijst met geldige notaties.
x-ms-client-request-id Optioneel. Biedt een door de client gegenereerde, ondoorzichtige waarde met een limiet van 1 kibibyte (KiB) die wordt vastgelegd in de logboeken wanneer logboekregistratie is geconfigureerd. We raden u ten zeerste aan deze header te gebruiken om activiteiten aan de clientzijde te correleren met aanvragen die de server ontvangt. Zie Azure Files bewaken voor meer informatie.
x-ms-file-request-intent Vereist als Authorization de header een OAuth-token opgeeft. Acceptabele waarde is backup. Deze header geeft aan dat de Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action of Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action moet worden verleend als deze zijn opgenomen in het RBAC-beleid dat is toegewezen aan de identiteit die is geautoriseerd met behulp van de Authorization header. Beschikbaar voor versie 2022-11-02 en hoger.
x-ms-allow-trailing-dot: { <Boolean> } Optioneel. Versie 2022-11-02 en hoger. De Booleaanse waarde geeft aan of een volgpunt in de aanvraag-URL moet worden ingekort of niet. Zie Shares, mappen, bestanden en metagegevens een naam geven en hiernaar verwijzen voor meer informatie.

Aanvraagbody

Geen.

Voorbeeldaanvraag

De volgende voorbeeldaanvraag laat zien hoe u een lease kunt verkrijgen:

Request Syntax:  
PUT https://myaccount.file.core.windows.net/myshare/mydirectory/myfile?comp=lease HTTP/1.1  
  
Request Headers:  
x-ms-version: 2019-07-07  
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=  

Antwoord

Het antwoord bevat een HTTP-statuscode en een set antwoordheaders.

Statuscode

De geslaagde statuscodes die worden geretourneerd voor leasebewerkingen zijn de volgende:

  • Acquire: een geslaagde bewerking retourneert statuscode 201 (gemaakt).
  • Change: Een geslaagde bewerking retourneert statuscode 200 (OK).
  • Release: Een geslaagde bewerking retourneert statuscode 200 (OK).
  • Break: Een geslaagde bewerking retourneert statuscode 202 (Geaccepteerd).

Zie Status- en foutcodes voor meer informatie over statuscodes.

Antwoordheaders

Het antwoord voor deze bewerking bevat de volgende headers. Het antwoord kan ook extra, standaard HTTP-headers bevatten. Alle standaardheaders voldoen aan de HTTP/1.1-protocolspecificatie.

Syntax Description
ETag Bevat een waarde die u kunt gebruiken om bewerkingen voorwaardelijk uit te voeren, tussen aanhalingstekens. Deze Lease File eigenschap wordt niet gewijzigd door de bewerking.
Last-Modified De datum/tijd waarop het bestand voor het laatst is gewijzigd. Zie Weergave van datum-tijdwaarden in kopteksten voor meer informatie.

Elke schrijfbewerking op het bestand, inclusief updates van de metagegevens of eigenschappen van het bestand, wijzigt de tijd van de laatste wijziging van het bestand. Deze Lease File eigenschap wordt niet gewijzigd door de bewerking.
x-ms-lease-id: <id> Wanneer u een lease aanvraagt, retourneert Azure Files een unieke lease-id. Terwijl de lease actief is, moet u de lease-id opnemen bij elke aanvraag om naar het bestand te schrijven of om de lease te wijzigen of vrij te geven.

Een geslaagde verlengingsbewerking retourneert ook de lease-id voor de actieve lease.
x-ms-lease-time: seconds Alleen geretourneerd voor een geslaagde aanvraag om de lease te verbreken. 0 wordt geretourneerd voor onmiddellijke onderbrekingen.
x-ms-request-id Identificeert op unieke wijze de aanvraag die is gedaan en kan worden gebruikt voor het oplossen van problemen met de aanvraag. Zie Problemen met API-bewerkingen oplossen voor meer informatie.
x-ms-version Geeft de versie aan van Azure Files gebruikt om de aanvraag uit te voeren.
Date Een UTC-datum/tijd-waarde die de tijd aangeeft waarop het antwoord is gestart. De service genereert deze waarde.
x-ms-client-request-id Kan worden gebruikt om problemen met aanvragen en bijbehorende antwoorden op te lossen. De waarde van deze header is gelijk aan de waarde van de x-ms-client-request-id header, als deze aanwezig is in de aanvraag. De waarde is maximaal 1024 zichtbare ASCII-tekens. Als de x-ms-client-request-id header niet aanwezig is in de aanvraag, is deze niet aanwezig in het antwoord.

Hoofdtekst van de reactie

Geen.

Voorbeeldantwoord

Hier volgt een voorbeeld van een antwoord voor een aanvraag voor het verkrijgen van een lease:

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Server: Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: cc6b209a-b593-4be1-a38a-dde7c106f402  
x-ms-version: 2019-07-07
x-ms-lease-id: 1f812371-a41d-49e6-b123-f4b542e851c5  
Date: <date>  

Autorisatie

De accounteigenaar kan deze bewerking aanroepen. Bovendien kan elke client met een Shared Access Signature die gemachtigd is om naar dit bestand of de bijbehorende share te schrijven, dit doen.

Opmerkingen

Een lease van een bestand biedt exclusieve schrijf- en verwijderingstoegang tot het bestand. Als u naar een bestand met een actieve lease wilt schrijven, moet een client de actieve lease-id bij de schrijfaanvraag opnemen. De lease wordt verleend voor een oneindige duur.

Wanneer een klant een lease verkrijgt, wordt een lease-id geretourneerd. Azure Files genereert een lease-id als deze niet is opgegeven in de acquire-aanvraag. De client kan deze lease-id gebruiken om de lease-id te wijzigen of de lease vrij te geven.

Wanneer een lease actief is, moet de lease-id worden opgenomen in de aanvraag voor een van de volgende bewerkingen:

Als de lease-id niet is opgenomen, mislukken deze bewerkingen in een leasebestand met 412 – Precondition failed.

De volgende bewerkingen worden uitgevoerd op een leasebestand, zonder de lease-id op te slaan:

Het is niet nodig om de lease-id op te nemen voor GET bewerkingen in een bestand met een actieve lease. Alle GET bewerkingen ondersteunen echter een parameter voor voorwaardelijke lease. In dit type parameter wordt de bewerking alleen uitgevoerd als de lease-id die is opgenomen in de aanvraag geldig is.

Alle sharebewerkingen zijn toegestaan voor een share die bestanden met een actieve lease bevat, inclusief Share verwijderen. Daarom kunt u een share verwijderen, zelfs als bestanden in de share actieve leases hebben.

Leasestatussen

In het volgende diagram ziet u de drie statussen van een lease en de opdrachten of gebeurtenissen die wijzigingen in de leasestatus veroorzaken.

Diagram met bestandsleasestatussen en statuswijzigingstriggers.

Een lease kan zich in drie statussen bevinden, afhankelijk van of de lease is vergrendeld of ontgrendeld en of de lease in die status kan worden verlengd. De leaseacties die in het voorgaande diagram worden weergegeven, veroorzaken statusovergangen.

  • Available: de lease wordt ontgrendeld en kan worden verkregen. Toegestane actie: acquire.
  • Leased: de lease is vergrendeld. Toegestane acties: acquire (alleen dezelfde lease-id), change, releaseen break.
  • Broken: de lease is verbroken. Toegestane acties: acquire, releaseen break.

Houd er rekening mee dat er geen lease kan worden verleend voor een bestand in een momentopname van een share, omdat momentopnamen het kenmerk Alleen-lezen hebben. Het aanvragen van een lease voor een bestand in een momentopname van een share resulteert in statuscode 400 (Ongeldige aanvraag).

Als een bestandslease de status Verbroken heeft en een putbereikbewerking naar het bestand schrijft, wordt de leasestatus gewijzigd in Beschikbaar. Als het bestand echter het kenmerk Alleen-lezen heeft ingesteld, retourneert de server conflict 409.

De eigenschap van het Last-Modified-Time bestand wordt niet bijgewerkt door aanroepen naar Lease File.

In de volgende tabellen ziet u de resultaten van acties op bestanden met leases in verschillende leasestatussen. Letters (A), (B) en (C) vertegenwoordigen lease-id's en (X) vertegenwoordigt een lease-id die wordt gegenereerd door Azure Files.

Resultaten van gebruikspogingen op bestanden per leasestatus

Actie Beschikbaar Geleased (A) Gebroken (A)
Schrijven met behulp van (A) Mislukt (412) Geleased (A), schrijfbewerkingen geslaagd Mislukt (412)
Schrijven met behulp van (B) Mislukt (412) Mislukt (409) Mislukt (412)
Schrijven, geen lease opgegeven Beschikbaar, schrijfbewerkingen zijn geslaagd Mislukt (412) Beschikbaar, schrijfbewerkingen zijn geslaagd
Lezen met behulp van (A) Mislukt (412) Geleased (A), lezen slaagt Mislukt (412)
Lezen met behulp van (B) Mislukt (412) Mislukt (409) Mislukt (412)
Lezen, geen lease opgegeven Beschikbaar, lezen slaagt Geleased (A), lezen slaagt Gebroken (A), slaagt lezen

Resultaten van leasebewerkingen op bestanden per leasestatus

Actie Beschikbaar Geleased (A) Gebroken (A)
Acquire, geen voorgestelde lease-id Geleased (X) Mislukt (409) Geleased (X)
Acquire (A) Geleased (A) Geleased (A) Geleased (A)
Acquire (B) Geleased (B) Mislukt (409) Geleased (B)
Break Mislukt (409) Gebroken (A) Gebroken (A)
Change, (A) tot (B) Mislukt (409) Geleased (B) Mislukt (409)
Change, (B) tot (A) Mislukt (409) Geleased (A) Mislukt (409)
Change, (B) tot (C) Mislukt (409) Mislukt (409) Mislukt (409)
Release (A) Mislukt (409) Beschikbaar Beschikbaar
Release (B) Mislukt (409) Mislukt (409) Mislukt (409)

Zie ook