Leasedatei
Der Lease File
Vorgang erstellt und verwaltet eine Sperre für Schreib- und Löschvorgänge.
Lease File
wird für Version 2019-02-02 und höher 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 Kunde sofort eine Lease für die Datei erwerben kann. -
Break
, um die Lease forcibly zu beenden, aber sicherstellen, dass ein anderer Kunde erst dann eine neue Lease erwerben kann, wenn der aktuelle Leasingzeitraum abgelaufen ist.
Protokollverfügbarkeit
Aktiviertes Dateifreigabeprotokoll | Verfügbar |
---|---|
SMB |
![]() |
NFS |
![]() |
Bitten
Die Lease File
Anforderung wird wie folgt erstellt. Es wird empfohlen, HTTPS zu verwenden.
Methode | Anforderungs-URI | HTTP-Version |
---|---|---|
STELLEN | https://myaccount.file.core.windows.net/myshare/mydirectory/myfile?comp=lease |
HTTP/1.1 |
Ersetzen Sie die pfadkomponenten, die im Anforderungs-URI angezeigt werden, wie folgt:
Pfadkomponente | Beschreibung |
---|---|
myaccount |
Der Name Ihres Speicherkontos. |
myshare |
Der Name Ihrer Dateifreigabe. |
mydirectorypath |
Wahlfrei. 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 |
Wahlfrei. Der parameter timeout wird in Sekunden ausgedrückt. Weitere Informationen finden Sie unter Festlegen von Timeouts für Azure Files-Vorgänge. |
Anforderungsheader
In der folgenden Tabelle werden die erforderlichen und optionalen 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 (UTC) für die Anforderung an. Weitere Informationen finden Sie unter Autorisieren von Anforderungen an Azure Storage. |
x-ms-version |
Wahlfrei. Gibt die Version des Vorgangs an, der für diese Anforderung verwendet werden soll. Weitere Informationen finden Sie unter Versionsverwaltung für die Azure Storage-Dienste. |
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 nicht über eine aktive Lease verfügt, 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 eine neue Lease anfordern, indem Sie die aktive Lease-ID verwenden.change : Ändert die Lease-ID einer aktiven Lease. Ein change muss die aktuelle Lease-ID in x-ms-lease-id und eine neue Lease-ID in x-ms-proposed-lease-id enthalten.release : Veröffentlicht den Leasingvertrag. Sie können die Lease freigeben, wenn die in der Anforderung angegebene Lease-ID mit der Datei übereinstimmt. Durch die Freigabe des Leases kann ein anderer Kunde die Lease für die Datei sofort erwerben, 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 ist sofort unterbrochen. |
x-ms-lease-duration: -1 |
Nur für einen acquire -Vorgang zulässig und erforderlich. Erforderlich, um -1 zu sein, um eine Lease anzugeben, die nie abläuft. |
x-ms-proposed-lease-id: <ID> |
Optional für acquire und erforderlich für change . Vorgeschlagene Lease-ID im GUID-Zeichenfolgenformat. Azure Files gibt 400 (Invalid request) zurück, wenn die vorgeschlagene Lease-ID nicht im richtigen Format ist. Eine Liste gültiger Formate finden Sie unter Guid-Konstruktor (String). |
x-ms-client-request-id |
Wahlfrei. Stellt einen vom Client generierten, undurchsichtigen Wert mit einem 1-Kibibyte-Zeichenlimit (KiB) bereit, der in den Protokollen aufgezeichnet wird, wenn die Protokollierung konfiguriert ist. 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 von Azure Files. |
x-ms-file-request-intent |
Erforderlich, wenn Authorization Header ein OAuth-Token angibt. Zulässiger Wert ist backup . Dieser Header gibt an, dass die Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action oder Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action gewährt werden sollen, 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> } |
Wahlfrei. Version 2022-11-02 und höher. Der boolesche Wert gibt an, ob ein nachgestellter Punkt in der Anforderungs-URL gekürzt werden soll. Weitere Informationen finden Sie unter Benennen und Verweisen auf Freigaben, Verzeichnisse, Dateien und Metadaten. |
Anforderungstext
Nichts.
Beispielanforderung
Die folgende Beispielanforderung zeigt, wie Sie eine Lease erwerben:
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 myaccount:esSKMOYdK4o+nGTuTyeOLBI+xqnqi6aBmiW4XI699+o=
Antwort
Die Antwort enthält einen HTTP-Statuscode und eine Reihe von Antwortheadern.
Statuscode
Die erfolgsstatuscodes, die für Leasevorgänge zurückgegeben werden, sind die folgenden:
-
Acquire
: Ein erfolgreicher Vorgang gibt den Statuscode 201 (Erstellt) zurück. -
Change
: Ein erfolgreicher Vorgang gibt den Statuscode 200 (OK) zurück. -
Release
: Ein erfolgreicher Vorgang gibt den Statuscode 200 (OK) zurück. -
Break
: Ein erfolgreicher Vorgang gibt den Statuscode 202 (Akzeptiert) zurück.
Informationen zu Statuscodes finden Sie unter Status- und Fehlercodes.
Antwortheader
Die Antwort für diesen Vorgang enthält die Kopfzeilen in der folgenden Tabelle. Die Antwort kann auch zusätzliche Standard-HTTP-Header enthalten. Alle Standardheader entsprechen der HTTP/1.1-Protokollspezifikation.
Antwortheader | Beschreibung |
---|---|
ETag |
Enthält einen Wert, den Sie zum bedingten Ausführen von Vorgängen in Anführungszeichen verwenden können. Die Lease File -Operation ändert diese Eigenschaft nicht. |
Last-Modified |
Das Datum/die Uhrzeit der letzten Änderung der Datei. Weitere Informationen finden Sie unter Darstellung von Datums-/Uhrzeitwerten in Kopfzeilen. Jeder Schreibvorgang für die Datei, einschließlich Aktualisierungen der Metadaten oder Eigenschaften der Datei, ändert die Uhrzeit der letzten Änderung der Datei. Die Lease File -Operation ändert diese Eigenschaft nicht. |
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 mit jeder Anforderung zum Schreiben in die Datei oder zum Ändern oder Freigeben der Lease einschließen. Ein erfolgreicher Verlängerungsvorgang gibt auch die Lease-ID für die aktive Lease zurück. |
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 die angeforderte Anforderung eindeutig 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 Anfragen und entsprechende Antworten zu behandeln. Der Wert dieses Headers ist gleich dem Wert des x-ms-client-request-id -Headers, wenn er in der Anforderung vorhanden ist. Der Wert beträgt 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
Nichts.
Beispielantwort
Es folgt eine Beispielantwort für eine Anforderung zum Erwerb 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>
Ermächtigung
Nur der Kontobesitzer kann diesen Vorgang aufrufen.
Bemerkungen
Eine Lease für eine Datei bietet exklusiven Schreib- und Löschzugriff auf die Datei. Um in eine Datei mit einer aktiven Lease zu schreiben, muss ein Client die aktive Lease-ID mit der Schreibanforderung enthalten. Der Leasingvertrag wird für eine unendliche Dauer gewährt.
Wenn ein Kunde eine Lease erwirbt, wird eine Lease-ID zurückgegeben. Azure Files generiert eine Lease-ID, wenn eine in der Kaufanforderung nicht angegeben ist. Der Kunde 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 die Anforderung für einen der folgenden Vorgänge einbezogen werden:
- Datei- erstellen
- Festlegen von Dateimetadaten
- Festlegen von Dateieigenschaften
- Datei löschen
- Bereich
- Datei kopieren (Lease-ID, die für die Zieldatei erforderlich ist.)
Wenn die Lease-ID nicht enthalten ist, schlagen diese Vorgänge bei einer leaseten Datei mit 412 – Precondition failed
fehl.
Die folgenden Vorgänge können in einer leaseten Datei ausgeführt werden, ohne die Lease-ID einzugeben:
- Datei abrufen
- Abrufen von Dateimetadaten
- Abrufen von Dateieigenschaften
- Listenbereiche
- Listenverzeichnisse und Dateien
- Datei kopieren (Für die Quelldatei ist keine Lease-ID erforderlich.)
-
Lease File (REST API) (Keine Lease-ID erforderlich für
x-ms-lease-action: break
.)
Es ist nicht erforderlich, die Lease-ID für GET-Vorgänge in eine Datei einzuschließen, die über eine aktive Lease verfügt. Alle GET-Vorgänge unterstützen jedoch einen Parameter für bedingten Lease. In 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 Löschen der Freigabe. Daher können Sie eine Freigabe auch dann löschen, wenn Dateien darin über aktive Leases verfügen.
Leasestatus
Das folgende Diagramm zeigt die drei Zustände eines Leases sowie die Befehle oder Ereignisse, die zu Änderungen des Leasestatus führen.
Eine Lease kann in drei Staaten sein, je nachdem, ob die Lease gesperrt oder entsperrt ist, und ob die Lease in diesem Zustand vererbbar ist. Die im vorherigen Diagramm gezeigten 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
,release
undbreak
. -
Broken
: Die Lease wurde unterbrochen. Zulässige Aktionen:acquire
,release
undbreak
.
Beachten Sie, dass eine Lease für eine Datei in einer Freigabemomentaufnahme nicht gewährt werden kann, da Momentaufnahmen schreibgeschützt sind. Das Anfordern einer Lease für eine Datei in einer Freigabemomentaufnahme führt zu Statuscode 400 (Ungültige Anforderung).
Wenn sich ein Dateileasing im Zustand Broken befindet und ein Put Range-Vorgang in die Datei schreibt, ändert sich der Leasestatus in Available. Wenn die Datei jedoch den schreibgeschützten Attributsatz aufweist, gibt der Server Den Konflikt 409 zurück.
Die Last-Modified-Time
-Eigenschaft der Datei wird nicht durch Aufrufe von Lease File
aktualisiert.
Die folgenden Tabellen zeigen Ergebnisse von Aktionen für Dateien mit Leases in verschiedenen Leasestatus. Buchstaben (A), (B) und (C) stellen Lease-IDs und (X) eine Lease-ID dar, die von Azure Files generiert wird.
Ergebnisse der Verwendungsversuche für Dateien nach Leasestatus
Aktion | Verfügbar | Verleasen (A) | Fehlerhaft (A) |
---|---|---|---|
Schreiben mithilfe von (A) | Schlägt fehl (412) | Geleaste (A), Schreibvorgang erfolgreich | Schlägt fehl (412) |
Schreiben mithilfe von (B) | Schlägt fehl (412) | Schlägt fehl (409) | Schlägt fehl (412) |
Schreiben, keine Lease angegeben | Verfügbar, Schreibvorgang erfolgreich | Schlägt fehl (412) | Verfügbar, Schreibvorgang erfolgreich |
Lesen mithilfe von (A) | Schlägt fehl (412) | Verleasen (A), Lesevorgang erfolgreich | Schlägt fehl (412) |
Lesen mithilfe von (B) | Schlägt fehl (412) | Schlägt fehl (409) | Schlägt fehl (412) |
Lesen, keine Lease angegeben | Verfügbar, Lesevorgang erfolgreich | Verleasen (A), Lesevorgang erfolgreich | Fehlerhaft (A), Lesevorgang erfolgreich |
Ergebnisse von Leasevorgängen für Dateien nach Leasestatus
Aktion | Verfügbar | Verleasen (A) | Fehlerhaft (A) |
---|---|---|---|
Acquire , keine vorgeschlagene Lease-ID |
Verleasen (X) | Schlägt fehl (409) | Verleasen (X) |
Acquire (A) |
Verleasen (A) | Verleasen (A) | Verleasen (A) |
Acquire (B) |
Verleasen (B) | Schlägt fehl (409) | Verleasen (B) |
Break |
Schlägt fehl (409) | Fehlerhaft (A) | Fehlerhaft (A) |
Change , (A) bis (B) |
Schlägt fehl (409) | Verleasen (B) | Schlägt fehl (409) |
Change , (B) bis (A) |
Schlägt fehl (409) | Verleasen (A) | Schlägt fehl (409) |
Change , (B) bis (C) |
Schlägt fehl (409) | Schlägt fehl (409) | Schlägt fehl (409) |
Release (A) |
Schlägt fehl (409) | Verfügbar | Verfügbar |
Release (B) |
Schlägt fehl (409) | Schlägt fehl (409) | Schlägt fehl (409) |