Fichier de bail
L’opération Lease File
crée et gère un verrou sur un fichier pour les opérations d’écriture et de suppression.
Lease File
est pris en charge pour la version 2019-02-02 et ultérieure.
Vous pouvez appeler l’opération Lease File
dans l’un des modes suivants :
-
Acquire
, pour demander un nouveau bail. -
Change
, pour modifier l'ID d'un bail existant. -
Release
, pour libérer le bail s’il n’est plus nécessaire, afin qu’un autre client puisse immédiatement acquérir un bail sur le fichier. -
Break
, de mettre fin de force au bail, mais de s’assurer qu’un autre client ne peut pas acquérir un nouveau bail tant que la période de bail actuelle n’a pas expiré.
Disponibilité du protocole
Protocole de partage de fichiers activé | Disponible |
---|---|
SMB | |
NFS |
Requête
Vous pouvez construire la Lease File
requête comme suit. HTTPS est recommandé.
Méthode | URI de demande | Version HTTP |
---|---|---|
Put |
https://myaccount.file.core.windows.net/myshare/mydirectory/myfile?comp=lease |
HTTP/1.1 |
Remplacez les composants du chemin indiqués dans l'URI de la demande par les vôtres, comme suit :
Composant Chemin d’accès | Description |
---|---|
myaccount |
nom de votre compte de stockage. |
myshare |
Nom du partage de fichiers. |
mydirectorypath |
facultatif. Chemin au répertoire. |
myfile |
Nom du fichier. |
Paramètres URI
Vous pouvez spécifier le paramètre supplémentaire suivant sur l’URI de demande.
Paramètre | Description |
---|---|
timeout |
facultatif. Le paramètre timeout est exprimé en secondes. Pour plus d’informations, consultez Définition de délais d’expiration pour les opérations Azure Files. |
En-têtes de requête
Le tableau suivant décrit les en-têtes de demande obligatoires ou facultatifs.
En-tête de requête | Description |
---|---|
Authorization |
Obligatoire. Spécifie le schéma d’autorisation, le nom du compte et la signature. Pour plus d’informations, consultez Autoriser les requêtes auprès du Stockage Azure. |
Date ou x-ms-date |
Obligatoire. Spécifie la date/heure en temps universel coordonné (UTC) pour la requête. Pour plus d’informations, consultez Autoriser les requêtes auprès du Stockage Azure. |
x-ms-version |
facultatif. Spécifie la version de l'opération à utiliser pour cette demande. Pour plus d'informations, consultez la page Contrôle de version pour les services de Stockage Microsoft Azure. |
x-ms-lease-id: <ID> |
Obligatoire pour renouveler, modifier ou libérer le bail. Vous pouvez spécifier la valeur de dans n’importe x-ms-lease-id quel format de chaîne GUID valide. Pour obtenir la liste des formats valides , consultez Constructeur guid (String ). |
x-ms-lease-action: <acquire ¦ change ¦ release ¦ break> |
acquire : demande un nouveau bail. Si le fichier n’a pas de bail actif, Azure Files crée un bail sur le fichier et retourne un nouvel ID de bail. Si le fichier a un bail actif, vous pouvez uniquement demander un nouveau bail en utilisant l’ID de bail actif.change : modifie l’ID de bail d’un bail actif. Un change doit inclure l’ID de bail actuel dans x-ms-lease-id , et un nouvel ID de bail dans x-ms-proposed-lease-id .release : libère le bail. Vous pouvez libérer le bail si l’ID de bail spécifié dans la demande correspond à celui associé au fichier. La libération du bail permet à un autre client d’acquérir immédiatement le bail du dossier, dès que la libération est terminée.break : Interrompt le bail, si le fichier a un bail actif. Toute demande autorisée peut rompre le bail. La demande n’est pas nécessaire pour spécifier un ID de bail correspondant. Un bail infini est rompu immédiatement. |
x-ms-lease-duration: -1 |
Autorisé et requis uniquement sur une acquire opération. Obligatoire pour être -1 , pour indiquer un bail qui n’expire jamais. |
x-ms-proposed-lease-id: <ID> |
Facultatif pour acquire et obligatoire pour change . ID de bail proposé, dans un format de chaîne GUID. Azure Files retourne 400 (Invalid request) si l’ID de bail proposé n’est pas au format correct. Pour obtenir la liste des formats valides , consultez Constructeur guid (String ). |
x-ms-client-request-id |
facultatif. Fournit une valeur opaque générée par le client avec une limite de caractères de 1 kibioctet (Kio) enregistrée dans les journaux lors de la configuration de la journalisation. Nous vous recommandons vivement d’utiliser cet en-tête pour mettre en corrélation les activités côté client avec les demandes reçues par le serveur. Pour plus d’informations, consultez Surveiller Azure Files. |
x-ms-file-request-intent |
Obligatoire si Authorization l’en-tête spécifie un jeton OAuth. La valeur acceptable est backup . Cet en-tête spécifie que le Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action ou Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action doit être accordé s’il est inclus dans la stratégie RBAC affectée à l’identité autorisée à l’aide de l’en-tête Authorization . Disponible pour les versions 2022-11-02 et ultérieures. |
x-ms-allow-trailing-dot: { <Boolean> } |
facultatif. Version 2022-11-02 et ultérieures. La valeur booléenne spécifie si un point de fin présent dans l’URL de requête doit être rogné ou non. Pour plus d’informations, consultez Nommer et référencer des partages, des répertoires, des fichiers et des métadonnées. |
Corps de la demande
Aucun.
Exemple de requête
L'exemple de demande suivant montre comment acquérir un bail :
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=
response
La réponse inclut un code d'état HTTP et un ensemble d'en-têtes de réponse.
Code d’état
Les codes d'état de réussite retournés pour les opérations de bail sont les suivants :
-
Acquire
: une opération ayant réussi retourne le code d'état 201 (Créée). -
Change
: une opération ayant réussi retourne le code d'état 200 (OK). -
Release
: une opération ayant réussi retourne le code d'état 200 (OK). -
Break
: une opération ayant réussi retourne le code d'état 202 (Acceptée).
Pour plus d’informations sur les codes status, consultez État et codes d’erreur.
En-têtes de réponse
La réponse de l'opération inclut les en-têtes suivants. La réponse peut également inclure des en-têtes HTTP standard supplémentaires. Tous les en-têtes standard sont conformes à la spécification du protocole HTTP/1.1.
Syntaxe | Description |
---|---|
ETag |
Contient une valeur que vous pouvez utiliser pour effectuer des opérations de manière conditionnelle, entre guillemets. L’opération Lease File ne modifie pas cette propriété. |
Last-Modified |
Date et heure de la dernière modification apportée au fichier. Pour plus d’informations, consultez Représentation des valeurs date-heure dans les en-têtes. Toute opération d’écriture sur le fichier, y compris les mises à jour sur les métadonnées ou propriétés du fichier, modifie l’heure de la dernière modification du fichier. L’opération Lease File ne modifie pas cette propriété. |
x-ms-lease-id: <id> |
Lorsque vous demandez un bail, Azure Files retourne un ID de bail unique. Pendant que le bail est actif, vous devez inclure l’ID de bail avec toute demande d’écriture dans le fichier, ou de modification ou de libération du bail. Une opération de renouvellement réussie retourne également l'ID du bail pour le bail actif. |
x-ms-lease-time: seconds |
Retourné uniquement pour une demande réussie de rupture du bail.
0 est retourné pour les pauses immédiates. |
x-ms-request-id |
Identifie de manière unique la demande qui a été effectuée et peut être utilisée pour la résolution des problèmes de la demande. Pour plus d’informations, consultez Résolution des problèmes liés aux opérations d’API. |
x-ms-version |
Indique la version de Azure Files utilisée pour exécuter la demande. |
Date |
Valeur de date/heure UTC qui indique l’heure à laquelle la réponse a été lancée. Le service génère cette valeur. |
x-ms-client-request-id |
Peut être utilisé pour résoudre les problèmes liés aux demandes et aux réponses correspondantes. La valeur de cet en-tête est égale à la valeur de l’en-tête x-ms-client-request-id , s’il est présent dans la requête. La valeur est au maximum de 1 024 caractères ASCII visibles. Si l’en-tête x-ms-client-request-id n’est pas présent dans la demande, il ne sera pas présent dans la réponse. |
Response body
Aucun.
Exemple de réponse
Voici un exemple de réponse pour une demande d'acquisition de bail :
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>
Autorisation
Le propriétaire du compte peut appeler cette opération. En outre, tout client disposant d’une signature d’accès partagé qui est autorisé à écrire dans ce fichier ou son partage peut le faire.
Remarques
Un bail sur un fichier fournit un accès exclusif en écriture et en suppression au fichier. Pour écrire dans un fichier avec un bail actif, un client doit inclure l’ID de bail actif avec la demande d’écriture. Le bail est accordé pour une durée infinie.
Lorsqu'un client acquiert un bail, un ID de bail est retourné. Azure Files génère un ID de bail s’il n’en est pas spécifié dans la demande d’acquisition. Le client peut utiliser cet ID de bail pour modifier son ID de bail ou libérer le bail.
Quand un bail est actif, l'ID de bail doit être inclus dans la demande pour les opérations suivantes :
- Créer un fichier
- Définition des métadonnées d'un fichier
- Définir les propriétés d’un fichier
- Supprimer le fichier
- Put Range
- Copier le fichier (ID de bail nécessaire pour le fichier de destination.)
Si l’ID de bail n’est pas inclus, ces opérations échouent sur un fichier loué, avec 412 – Precondition failed
.
Les opérations suivantes réussissent sur un fichier loué, sans inclure l’ID de bail :
- Obtention de fichier
- Obtenir les métadonnées d’un fichier
- Obtenir les propriétés d’un fichier
- Liste des plages
- Répertorier des répertoires et des fichiers
- Copier le fichier (aucun ID de bail nécessaire pour le fichier source.)
-
Fichier de bail (API REST) (aucun ID de bail nécessaire pour
x-ms-lease-action: break
.)
Il n’est pas nécessaire d’inclure l’ID de bail pour GET
les opérations sur un fichier qui a un bail actif. Toutefois, toutes les GET
opérations prennent en charge un paramètre de bail conditionnel. Dans ce type de paramètre, l’opération ne se poursuit que si l’ID de bail inclus dans la demande est valide.
Toutes les opérations de partage sont autorisées sur un partage qui inclut des fichiers avec un bail actif, y compris Supprimer le partage. Par conséquent, vous pouvez supprimer un partage même si les fichiers qu’il contient ont des baux actifs.
États de bail
Le diagramme suivant montre les trois états d’un bail, ainsi que les commandes ou événements qui provoquent des changements d’état de bail.
Un bail peut être dans trois états, selon que le bail est verrouillé ou déverrouillé, et si le bail est renouvelable dans cet état. Les actions de bail présentées dans le diagramme précédent entraînent des transitions d’état.
-
Available
: le bail est déverrouillé et peut être acquis. Action autorisée :acquire
. -
Leased
: le bail est verrouillé. Actions autorisées :acquire
(même ID de bail uniquement),change
,release
etbreak
. -
Broken
: Le bail a été rompu. Actions autorisées :acquire
,release
etbreak
.
Notez qu’un bail ne peut pas être accordé pour un fichier dans un partage instantané, car les instantanés sont en lecture seule. La demande d’un bail sur un fichier dans un partage instantané entraîne status code 400 (Requête incorrecte).
Si un bail de fichier est à l’état Rompu et qu’une opération Put Range écrit dans le fichier, l’état du bail passe à Disponible. Toutefois, si l’attribut en lecture seule est défini dans le fichier, le serveur retourne le conflit 409.
La propriété du Last-Modified-Time
fichier n’est pas mise à jour par les appels à Lease File
.
Les tableaux suivants présentent les résultats des actions sur les fichiers avec des baux dans différents états de bail. Les lettres (A), (B) et (C) représentent les ID de bail, et (X) représentent un ID de bail généré par Azure Files.
Résultats des tentatives d’utilisation sur les fichiers par état de bail
Action | Disponible | Loué (A) | Résilié (A) |
---|---|---|---|
Écrire à l’aide de (A) | Échecs (412) | Loué (A), l'écriture a réussi | Échecs (412) |
Écrire à l’aide de (B) | Échecs (412) | Échec (409) | Échecs (412) |
Écriture, aucun bail spécifié | Disponible, l'écriture a réussi | Échecs (412) | Disponible, l'écriture a réussi |
Lecture à l’aide de (A) | Échecs (412) | Loué (A), la lecture a réussi | Échecs (412) |
Lecture à l’aide de (B) | Échecs (412) | Échec (409) | Échecs (412) |
Lecture, aucun bail spécifié | Disponible, la lecture a réussi | Loué (A), la lecture a réussi | Résilié (A), la lecture a réussi |
Résultats des opérations de bail sur les fichiers par état de bail
Action | Disponible | Loué (A) | Résilié (A) |
---|---|---|---|
Acquire , aucun ID de bail proposé |
Loué (X) | Échec (409) | Loué (X) |
Acquire (A) |
Loué (A) | Loué (A) | Loué (A) |
Acquire (B) |
Loué (B) | Échec (409) | Loué (B) |
Break |
Échec (409) | Résilié (A) | Résilié (A) |
Change , (A) à (B) |
Échec (409) | Loué (B) | Échec (409) |
Change , (B) à (A) |
Échec (409) | Loué (A) | Échec (409) |
Change , (B) à (C) |
Échec (409) | Échec (409) | Échec (409) |
Release (A) |
Échec (409) | Disponible | Disponible |
Release (B) |
Échec (409) | Échec (409) | Échec (409) |