Freigeben über


Leasedatei

Der Lease File Vorgang erstellt und verwaltet eine Sperre für eine Datei für Schreib- und Löschvorgänge. Lease File wird ab Version 2019-02-02 unterstützt.

Sie können den Lease File Vorgang in einem der folgenden Modi aufrufen:

  • Acquire, um eine neue Lease anzufordern.
  • Change, um die ID einer vorhandenen Lease zu ändern.
  • Release, um die Lease freizugeben, wenn sie nicht mehr benötigt wird, damit ein anderer Client sofort eine Lease für die Datei erwerben kann.
  • Break, um die Lease gewaltsam zu beenden, aber sicherstellen, dass ein anderer Client erst eine neue Lease erwerben kann, wenn der aktuelle Leasezeitraum abgelaufen ist.

Protokollverfügbarkeit

Aktiviertes Dateifreigabeprotokoll Verfügbar
SMB Ja
NFS Nein

Anforderung

Sie können die Lease File Anforderung wie folgt erstellen. HTTPS wird empfohlen.

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

Ersetzen Sie die im Anforderungs-URI angezeigten Pfadkomponenten wie folgt durch Ihre eigenen Angaben:

Pfadkomponente BESCHREIBUNG
myaccount Der Name Ihres Speicherkontos.
myshare Der Name der Dateifreigabe.
mydirectorypath Optional. Der Pfad zum Verzeichnis.
myfile Der Name der Datei.

URI-Parameter

Sie können den folgenden zusätzlichen Parameter für den Anforderungs-URI angeben.

Parameter BESCHREIBUNG
timeout Optional. Der timeout-Parameter wird in Sekunden angegeben. Weitere Informationen finden Sie unter Festlegen von Timeouts für Azure Files Vorgänge.

Anforderungsheader

In der folgenden Tabelle werden erforderliche und optionale Anforderungsheader beschrieben.

Anforderungsheader BESCHREIBUNG
Authorization Erforderlich. Gibt das Autorisierungsschema, den Kontonamen und die Signatur an. Weitere Informationen finden Sie unter Autorisieren von Anforderungen an Azure Storage.
Date oder x-ms-date Erforderlich. Gibt die koordinierte Weltzeit (Coordinated Universal Time, UTC) für die Anforderung an. Weitere Informationen finden Sie unter Autorisieren von Anforderungen an Azure Storage.
x-ms-version Optional. Gibt die Version des für die Anforderung zu verwendenden Vorgangs an. Weitere Informationen finden Sie unter Versionsverwaltung für die Azure-Speicherdienste.
x-ms-lease-id: <ID> Erforderlich, um die Lease zu verlängern, zu ändern oder freizugeben.

Sie können den Wert von x-ms-lease-id in einem beliebigen gültigen GUID-Zeichenfolgenformat angeben. Eine Liste gültiger Formate finden Sie unter Guid-Konstruktor (String).
x-ms-lease-action: <acquire ¦ change ¦ release ¦ break> acquire: Fordert eine neue Lease an. Wenn die Datei keine aktive Lease aufweist, erstellt Azure Files eine Lease für die Datei und gibt eine neue Lease-ID zurück. Wenn die Datei über eine aktive Lease verfügt, können Sie nur mithilfe der aktiven Lease-ID eine neue Lease anfordern.

change: Ändert die Lease-ID einer aktiven Lease. Ein change muss die aktuelle Lease-ID in x-ms-lease-idund eine neue Lease-ID in x-ms-proposed-lease-identhalten.

release: Gibt die Lease frei. Sie können die Lease freigeben, wenn die in der Anforderung angegebene Lease-ID mit der der Datei verknüpften übereinstimmt. Durch das Freigeben der Lease kann ein anderer Client sofort die Lease für die Datei abrufen, sobald die Veröffentlichung abgeschlossen ist.

break: Unterbricht die Lease, wenn die Datei über eine aktive Lease verfügt. Jede autorisierte Anforderung kann die Lease unterbrechen. Die Anforderung ist nicht erforderlich, um eine übereinstimmende Lease-ID anzugeben. Eine unendliche Lease wird sofort unterbrochen.
x-ms-lease-duration: -1 Nur für einen acquire Vorgang zulässig und erforderlich. Muss sein -1, um eine Lease anzugeben, die nie abläuft.
x-ms-proposed-lease-id: <ID> Optional für acquireund erforderlich für change. Vorgeschlagene Lease-ID in einem GUID-Zeichenfolgenformat. Azure Files gibt zurück400 (Invalid request), wenn die vorgeschlagene Lease-ID nicht im richtigen Format vorliegt. Eine Liste gültiger Formate finden Sie unter Guid-Konstruktor (String).
x-ms-client-request-id Optional. Stellt einen vom Client generierten, undurchsichtigen Wert mit einem Zeichenlimit von 1 Kibibyte (KiB) bereit, der beim Konfigurieren der Protokollierung in den Protokollen aufgezeichnet wird. Es wird dringend empfohlen, diesen Header zu verwenden, um clientseitige Aktivitäten mit Anforderungen zu korrelieren, die der Server empfängt. Weitere Informationen finden Sie unter Überwachen Azure Files.
x-ms-file-request-intent Erforderlich, wenn Authorization der Header ein OAuth-Token angibt. Zulässiger Wert ist backup. Dieser Header gibt an, dass oder Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/actionMicrosoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action gewährt werden soll, wenn sie in der RBAC-Richtlinie enthalten sind, die der Identität zugewiesen ist, die mithilfe des Authorization Headers autorisiert ist. Verfügbar für Version 2022-11-02 und höher.
x-ms-allow-trailing-dot: { <Boolean> } Optional. Version 2022-11-02 und höher. Der boolesche Wert gibt an, ob ein in der Anforderungs-URL vorhandener nachgestellter Punkt gekürzt werden soll oder nicht. Weitere Informationen finden Sie unter Benennen und Verweisen auf Freigaben, Verzeichnisse, Dateien und Metadaten.

Anforderungstext

Keine.

Beispiel für eine Anforderung

Die folgende Beispielanforderung zeigt, wie eine Lease abgerufen wird:

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=  

Antwort

Die Antwort enthält den HTTP-Statuscode und einen Satz von Antwortheadern.

Statuscode

Die für Leasevorgänge zurückgegebenen Codes für den Erfolgsstatus lauten wie folgt:

  • Acquire: Bei einem erfolgreichen Vorgang wird der Statuscode 201 (Erstellt) zurückgegeben.
  • Change: Bei einem erfolgreichen Vorgang wird der Statuscode 200 (OK) zurückgegeben.
  • Release: Bei einem erfolgreichen Vorgang wird der Statuscode 200 (OK) zurückgegeben.
  • Break: Ein erfolgreicher Vorgang gibt den Statuscode 202 (Akzeptiert) zurück.

Informationen zu status Codes finden Sie unter Status- und Fehlercodes.

Antwortheader

Die Antwort für diesen Vorgang umfasst die folgenden Header. Die Antwort kann auch zusätzliche HTTP-Standardheader enthalten. Alle Standardheader entsprechen der HTTP/1.1-Protokollspezifikation.

Syntax BESCHREIBUNG
ETag Enthält einen Wert, den Sie verwenden können, um Vorgänge bedingt in Anführungszeichen auszuführen. Diese Lease File Eigenschaft wird vom Vorgang nicht geändert.
Last-Modified Datum/Uhrzeit der letzten Änderung der Datei. Weitere Informationen finden Sie unter Darstellung von Datums-Uhrzeit-Werten in Headern.

Jeder Schreibvorgang für die Datei, einschließlich Aktualisierungen der Metadaten oder Eigenschaften der Datei, ändert den Zeitpunkt der letzten Änderung der Datei. Diese Lease File Eigenschaft wird vom Vorgang nicht geändert.
x-ms-lease-id: <id> Wenn Sie eine Lease anfordern, gibt Azure Files eine eindeutige Lease-ID zurück. Während die Lease aktiv ist, müssen Sie die Lease-ID bei jeder Anforderung zum Schreiben in die Datei oder zum Ändern oder Freigeben der Lease einschließen.

Bei einem erfolgreichen Verlängerungsvorgang wird auch die Lease-ID für die aktive Lease zurückgegeben.
x-ms-lease-time: seconds Wird nur für eine erfolgreiche Anforderung zurückgegeben, um die Lease zu unterbrechen. 0 wird für sofortige Unterbrechungen zurückgegeben.
x-ms-request-id Identifiziert eindeutig die Anforderung, die gestellt wurde, und kann für die Problembehandlung der Anforderung verwendet werden. Weitere Informationen finden Sie unter Problembehandlung für API-Vorgänge.
x-ms-version Gibt die Version von Azure Files an, die zum Ausführen der Anforderung verwendet wird.
Date Ein UTC-Datums-/Uhrzeitwert, der die Uhrzeit angibt, zu der die Antwort initiiert wurde. Der Dienst generiert diesen Wert.
x-ms-client-request-id Kann verwendet werden, um Anforderungen und entsprechende Antworten zu behandeln. Der Wert dieses Headers entspricht dem Wert des x-ms-client-request-id Headers, wenn er in der Anforderung vorhanden ist. Der Wert ist höchstens 1.024 sichtbare ASCII-Zeichen. Wenn der x-ms-client-request-id Header in der Anforderung nicht vorhanden ist, ist er in der Antwort nicht vorhanden.

Antworttext

Keine.

Beispiel für eine Antwort

Im Folgenden finden Sie eine Beispielantwort für eine Anforderung zum Abrufen einer 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>  

Authorization

Der Kontobesitzer kann diesen Vorgang aufrufen. Darüber hinaus kann dies jeder Client mit einer Shared Access Signature tun, der über die Berechtigung zum Schreiben in diese Datei oder ihre Freigabe verfügt.

Hinweise

Eine Lease für eine Datei bietet exklusiven Schreib- und Löschzugriff auf die Datei. Um in eine Datei mit einer aktiven Lease schreiben zu können, muss ein Client die aktive Lease-ID in die Schreibanforderung aufnehmen. Der Mietvertrag wird für eine unbegrenzte Dauer gewährt.

Wenn ein Client eine Lease abruft, wird eine Lease-ID zurückgegeben. Azure Files generiert eine Lease-ID, wenn sie in der Acquire-Anforderung nicht angegeben ist. Der Client kann diese Lease-ID verwenden, um seine Lease-ID zu ändern oder die Lease freizugeben.

Wenn eine Lease aktiv ist, muss die Lease-ID in der Anforderung für die folgenden Vorgänge eingeschlossen werden:

Wenn die Lease-ID nicht enthalten ist, schlagen diese Vorgänge für eine Leasedatei mit 412 – Precondition failedfehl.

Die folgenden Vorgänge sind für eine Leasedatei ohne Angabe der Lease-ID erfolgreich:

Es ist nicht erforderlich, die Lease-ID für GET Vorgänge für eine Datei mit einer aktiven Lease einzuschließen. Alle GET Vorgänge unterstützen jedoch einen bedingten Leaseparameter. Bei diesem Parametertyp wird der Vorgang nur fortgesetzt, wenn die in der Anforderung enthaltene Lease-ID gültig ist.

Alle Freigabevorgänge sind für eine Freigabe zulässig, die Dateien mit einer aktiven Lease enthält, einschließlich Freigabe löschen. Daher können Sie eine Freigabe auch dann löschen, wenn dateien darin aktive Leases aufweisen.

Leasestatus

Das folgende Diagramm zeigt die drei Zustände einer Lease und die Befehle oder Ereignisse, die Änderungen des Leasestatus verursachen.

Diagramm: Dateileasstatus und Statusänderungstrigger

Eine Lease kann sich in drei Zuständen befinden, je nachdem, ob die Lease gesperrt oder entsperrt ist und ob die Lease in diesem Zustand verlängerbar ist. Die im vorherigen Diagramm dargestellten Leaseaktionen führen zu Zustandsübergängen.

  • Available: Die Lease ist entsperrt und kann erworben werden. Zulässige Aktion: acquire.
  • Leased: Die Lease ist gesperrt. Zulässige Aktionen: acquire (nur dieselbe Lease-ID), change, releaseund break.
  • Broken: Die Lease wurde unterbrochen. Zulässige Aktionen: acquire, release und break.

Beachten Sie, dass eine Lease für eine Datei in einer Freigabe Momentaufnahme nicht gewährt werden kann, da Momentaufnahmen schreibgeschützt sind. Das Anfordern einer Lease für eine Datei in einer Freigabe Momentaufnahme führt zu status Code 400 (Ungültige Anforderung).

Wenn sich eine Dateileasase im Zustand Broken befindet und ein Put Range-Vorgang in die Datei schreibt, ändert sich der Leasestatus in Verfügbar. Wenn für die Datei jedoch das schreibgeschützte Attribut festgelegt ist, gibt der Server den Konflikt 409 zurück.

Die Eigenschaft der Last-Modified-Time Datei wird nicht durch Aufrufe von Lease Fileaktualisiert.

Die folgenden Tabellen zeigen Die Ergebnisse von Aktionen für Dateien mit Leases in verschiedenen Leasezuständen. Buchstaben (A), (B) und (C) stellen Lease-IDs dar, und (X) stellt eine von Azure Files generierte Lease-ID dar.

Ergebnisse von Verwendungsversuchen für Dateien nach Leasestatus

Aktion Verfügbar Geleast (A) Unterbrochen (A)
Schreiben mit (A) Fehler (412) Geleast (A), Schreibvorgang erfolgreich Fehler (412)
Schreiben mit (B) Fehler (412) Fehler (409) Fehler (412)
Schreiben, keine Lease angegeben Verfügbar, Schreibvorgang erfolgreich Fehler (412) Verfügbar, Schreibvorgang erfolgreich
Lesen mithilfe von (A) Fehler (412) Geleast (A), Lesevorgang erfolgreich Fehler (412)
Lesen mithilfe von (B) Fehler (412) Fehler (409) Fehler (412)
Lesen, keine Lease angegeben Verfügbar, Lesevorgang erfolgreich Geleast (A), Lesevorgang erfolgreich Unterbrochen (A), Lesevorgang erfolgreich

Ergebnisse von Leasevorgängen für Dateien nach Leasestatus

Aktion Verfügbar Geleast (A) Unterbrochen (A)
Acquire, keine vorgeschlagene Lease-ID Geleast (X) Fehler (409) Geleast (X)
Acquire (A) Geleast (A) Geleast (A) Geleast (A)
Acquire (B) Geleast (B) Fehler (409) Geleast (B)
Break Fehler (409) Unterbrochen (A) Unterbrochen (A)
Change, (A) in (B) Fehler (409) Geleast (B) Fehler (409)
Change, (B) in (A) Fehler (409) Geleast (A) Fehler (409)
Change, (B) in (C) Fehler (409) Fehler (409) Fehler (409)
Release (A) Fehler (409) Verfügbar Verfügbar
Release (B) Fehler (409) Fehler (409) Fehler (409)

Weitere Informationen