Partager via


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 de 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, pour mettre fin de force au bail, mais assurez-vous qu’un autre client ne peut pas acquérir un nouveau bail tant que la période de bail en cours n’a pas expiré.

Disponibilité du protocole

Protocole de partage de fichiers activé Disponible
SMB Oui
NFS Aucun

Demander

La requête Lease File est construite comme suit. Nous vous recommandons d’utiliser HTTPS.

Méthode URI de requête Version HTTP
METTRE https://myaccount.file.core.windows.net/myshare/mydirectory/myfile?comp=lease HTTP/1.1

Remplacez les composants de chemin d’accès indiqués dans l’URI de requête par vos propres composants, comme suit :

Composant Path Description
myaccount Nom de votre compte de stockage.
myshare Nom de votre partage de fichiers.
mydirectorypath Optionnel. Chemin d’accès au répertoire.
myfile Nom du fichier.

Paramètres d’URI

Vous pouvez spécifier le paramètre supplémentaire suivant sur l’URI de requête.

Paramètre Description
timeout Optionnel. Le paramètre timeout est exprimé en secondes. Pour plus d’informations, consultez Définition des 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 requête obligatoires et 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 demandes vers le stockage Azure.
Date ou x-ms-date Obligatoire. Spécifie le temps universel coordonné (UTC) de la requête. Pour plus d’informations, consultez Autoriser les demandes vers le stockage Azure.
x-ms-version Optionnel. Spécifie la version de l’opération à utiliser pour cette requête. Pour plus d’informations, consultez Contrôle de version pour les services stockage Azure.
x-ms-lease-id:<ID> Requis pour renouveler, modifier ou libérer le bail.

Vous pouvez spécifier la valeur de x-ms-lease-id dans n’importe quel format de chaîne GUID valide. Consultez constructeur guid (chaîne) pour obtenir la liste des formats valides.
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 ne pouvez demander qu’un nouveau bail à l’aide de 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-idet 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é sur la demande correspond à celui associé au fichier. La libération du bail permet à un autre client d’acquérir immédiatement le bail pour le fichier, dès que la version est terminée.

break: interrompt le bail, si le fichier a un bail actif. Toute demande autorisée peut interrompre le bail. La demande n’est pas requise pour spécifier un ID de bail correspondant. Un bail infini est rompu immédiatement.
x-ms-lease-duration: -1 Autorisé et obligatoire uniquement sur une opération de acquire. Obligatoire pour être -1, pour indiquer un bail qui n’expire jamais.
x-ms-proposed-lease-id: <ID> Facultatif pour acquireet requis pour change. ID de bail proposé, au format de chaîne GUID. Azure Files retourne 400 (Invalid request) si l’ID de bail proposé n’est pas au format correct. Consultez constructeur guid (chaîne) pour obtenir la liste des formats valides.
x-ms-client-request-id Optionnel. Fournit une valeur opaque générée par le client avec une limite de caractères de 1 kibioctet (KiB) 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 Monitor Azure Files.
x-ms-file-request-intent Obligatoire si Authorization en-tête spécifie un jeton OAuth. La valeur acceptable est backup. Cet en-tête spécifie que les Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action ou Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action doivent être accordés s’ils sont inclus dans la stratégie RBAC affectée à l’identité autorisée à l’aide de l’en-tête Authorization. Disponible pour la version 2022-11-02 et ultérieure.
x-ms-allow-trailing-dot: { <Boolean> } Optionnel. Version 2022-11-02 et ultérieure. La valeur booléenne spécifie si un point de fin présent dans l’URL de requête doit être supprimé ou non. Pour plus d’informations, consultez nommage et référencement de partages, répertoires, fichiers et 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 myaccount:esSKMOYdK4o+nGTuTyeOLBI+xqnqi6aBmiW4XI699+o=  

Réponse

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 réussie retourne le code d’état 201 (créé).
  • Change: une opération réussie retourne le code d’état 200 (OK).
  • Release: une opération réussie retourne le code d’état 200 (OK).
  • Break: une opération réussie retourne le code d’état 202 (accepté).

Pour plus d’informations sur les codes d’état, consultez Les codes d’état et d’erreur.

En-têtes de réponse

La réponse de cette opération inclut les en-têtes du tableau suivant. 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 de protocole HTTP/1.1 .

En-tête de réponse Description
ETag Contient une valeur que vous pouvez utiliser pour effectuer des opérations conditionnellement, entre guillemets. L’opération Lease File ne modifie pas cette propriété.
Last-Modified Date/heure de la dernière modification du 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 des métadonnées ou des propriétés du fichier, modifie l’heure de 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 pour modifier ou libérer le bail.

Une opération de renouvellement réussie retourne également l’ID de bail du bail actif.
x-ms-lease-time: seconds Retourné uniquement pour une demande réussie pour interrompre le bail. 0 est retourné pour les interruptions immédiates.
x-ms-request-id Identifie de manière unique la demande qui a été effectuée et peut être utilisée pour résoudre les problèmes de la demande. Pour plus d’informations, consultez Résolution des problèmes des opérations d’API.
x-ms-version Indique la version d’Azure Files utilisée pour exécuter la requête.
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 demandes et les réponses correspondantes. La valeur de cet en-tête est égale à la valeur de l’en-tête x-ms-client-request-id, si elle est présente 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 requête, il ne sera pas présent dans la réponse.

Corps de la réponse

Aucun.

Exemple de réponse

Voici un exemple de réponse pour une demande d’acquisition d’un 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

Seul le propriétaire du compte peut appeler cette opération.

Remarques

Un bail sur un fichier fournit un accès exclusif en écriture et 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é pendant 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’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.

Lorsqu’un bail est actif, l’ID de bail doit être inclus dans la demande d’une des opérations suivantes :

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 :

Il n’est pas nécessaire d’inclure l’ID de bail pour les opérations GET sur un fichier disposant d’un bail actif. Toutefois, toutes les opérations GET prennent en charge un paramètre de bail conditionnel. Dans ce type de paramètre, l’opération se poursuit uniquement 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 du bail

Le diagramme suivant montre les trois états d’un bail et les commandes ou événements qui provoquent des modifications d’état de bail.

Diagramme montrant les états de bail de fichier et les déclencheurs de modification d’état.

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 indiquées dans le diagramme précédent provoquent 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, releaseet break.
  • Broken: le bail a été rompu. Actions autorisées : acquire, releaseet break.

Notez qu’un bail ne peut pas être accordé pour un fichier dans un instantané de partage, car les instantanés sont en lecture seule. La demande d’un bail sur un fichier dans un instantané de partage entraîne le code d’état 400 (demande incorrecte).

Si un bail de fichier est dans l’état rompu et qu’une opération Put Range écrit dans le fichier, l’état du bail passe à disponible. Toutefois, si le fichier a le jeu d’attributs en lecture seule, le serveur retourne le conflit 409.

La propriété Last-Modified-Time du fichier n’est pas mise à jour par les appels à Lease File.

Les tableaux suivants montrent 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 des 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) Rompu (A)
Écrire à l’aide de (A) Échec (412) Loué (A), écriture réussie Échec (412)
Écrire à l’aide de (B) Échec (412) Échec (409) Échec (412)
Écriture, aucun bail spécifié La réussite de l’écriture est disponible Échec (412) La réussite de l’écriture est disponible
Lecture à l’aide de (A) Échec (412) Loué (A), lecture réussie Échec (412)
Lecture à l’aide de (B) Échec (412) Échec (409) Échec (412)
Lecture, aucun bail spécifié Disponibilité, lecture réussie Loué (A), lecture réussie Rompu (A), lecture réussie

Résultats des opérations de bail sur les fichiers par état de bail

Action Disponible Loué (A) Rompu (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) Rompu (A) Rompu (A)
Change, (A) to (B) Échec (409) Loué (B) Échec (409)
Change, (B) to (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)

Voir aussi