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 | |
NFS |
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-id und eine neue Lease-ID in x-ms-proposed-lease-id enthalten.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 acquire und 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/action Microsoft.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:
- Datei erstellen
- Set File Metadata
- Dateieigenschaften festlegen
- Löschen einer Datei
- Put Range
- Datei kopieren (Lease-ID für die Zieldatei erforderlich.)
Wenn die Lease-ID nicht enthalten ist, schlagen diese Vorgänge für eine Leasedatei mit 412 – Precondition failed
fehl.
Die folgenden Vorgänge sind für eine Leasedatei ohne Angabe der Lease-ID erfolgreich:
- Get File
- Dateimetadaten abrufen
- Dateieigenschaften abrufen
- List Ranges
- Auflisten von Verzeichnissen und Dateien
- Datei kopieren (Keine Lease-ID für die Quelldatei erforderlich.)
-
Leasedatei (REST-API) (Für .) ist keine Lease-ID erforderlich
x-ms-lease-action: break
.
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.
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
,release
undbreak
. -
Broken
: Die Lease wurde unterbrochen. Zulässige Aktionen:acquire
,release
undbreak
.
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 File
aktualisiert.
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) |