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 |
![]() |
NFS |
![]() |
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-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é 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 acquire et 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 :
- Créer un de fichiers
- définir des métadonnées de fichier
- définir des propriétés de fichier
- supprimer le de fichier
- de plage de put
- copier le de 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 :
- obtenir le de fichier
- obtenir des métadonnées de fichier
- obtenir des propriétés de fichier
- plages de listes
- répertorier les répertoires et les fichiers
- copier 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 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.
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
,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 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) |