Forcer la fermeture des poignées

L’opération Force Close Handles ferme un handle ou des handles ouverts sur un répertoire ou un fichier. Il prend en charge la fermeture d’un handle unique spécifié par l’ID de handle sur un fichier ou un répertoire. Il prend également en charge la fermeture de tous les handles ouverts sur cette ressource. Elle prend éventuellement en charge les handles fermants de manière récursive sur les sous-ressources lorsque la ressource est un répertoire.

Vous utilisez cette opération avec les handles de liste pour forcer la fermeture des handles qui bloquent les opérations, telles que le changement de nom d’un répertoire. Les clients SMB peuvent avoir divulgué ou perdu la trace de ces handles. L’opération a un impact côté client sur le handle que vous fermez, y compris les erreurs visibles par l’utilisateur en raison d’échecs de tentatives de lecture ou d’écriture de fichiers. Cette opération n’est pas destinée à remplacer ou à remplacer une session SMB.

Cette opération est disponible dans la version 2018-11-09 et ultérieure.

Disponibilité du protocole

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

Requête

Vous pouvez construire la Force Close Handles requête comme suit. Nous recommandons HTTPS.

Méthode URI de demande Version HTTP
PUT https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfileordirectory?comp=forceclosehandles 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.
myfileordirectory Nom du fichier ou du répertoire.

Pour plus d’informations sur les restrictions de nommage de chemin d’accès, consultez Nommer et référencer des partages, des répertoires, des fichiers et des métadonnées.

Paramètres URI

Vous pouvez spécifier les paramètres supplémentaires suivants sur l’URI :

Paramètre Description
timeout facultatif. Exprimé en secondes. Pour plus d’informations, consultez Définir des délais d’expiration pour les opérations de service de fichiers.
marker facultatif. Valeur de chaîne qui identifie la position des handles qui seront fermés lors de l’opération suivante Force Close Handles . L’opération retourne une valeur de marqueur dans le corps de la réponse s’il y a plus de handles à fermer. La valeur du marqueur peut ensuite être utilisée dans un appel suivant pour fermer l’ensemble de handles suivant.

La valeur de marqueur est opaque au client.
sharesnapshot facultatif. Valeur de date/heure opaque. Lorsqu’il est présent, il spécifie le partage instantané à interroger pour obtenir la liste des handles.

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 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 Obligatoire pour toutes les demandes autorisées, mais facultatif pour les requêtes anonymes. 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-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.
x-ms-handle-id Obligatoire. Spécifie l’ID de handle à fermer. Utilisez un astérisque (*) comme chaîne générique pour spécifier tous les handles.
x-ms-recursive facultatif. Valeur booléenne qui spécifie si l’opération doit également s’appliquer aux fichiers et sous-répertoires du répertoire spécifié dans l’URI.
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 la demande 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.

response

La réponse inclut un code d'état HTTP, un ensemble d'en-têtes de réponse et un corps de réponse au format XML.

Code d’état

Une opération réussie envoie le code d'état 200 (OK).

Pour plus d’informations sur les codes status, consultez Codes d’état et 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.

En-tête de réponse Description
x-ms-request-id Identifie de manière unique la demande qui a été effectuée. Vous pouvez l’utiliser pour résoudre les problèmes liés à la demande. Pour plus d’informations, consultez Résoudre les 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 le service a envoyé la réponse.
x-ms-marker Décrit le handle suivant à fermer. Cette chaîne est retournée lorsque d’autres handles doivent être fermés pour terminer la demande. La chaîne est utilisée dans les requêtes suivantes pour forcer la fermeture des handles restants. L’absence de x-ms-marker indique que tous les handles pertinents ont été fermés.
x-ms-number-of-handles-closed Indique le nombre de handles fermés.
x-ms-number-of-handles-failed Indique le nombre de handles qui n’ont pas pu être fermés.
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 , si elle est présente dans la requête et que 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, cet en-tête ne sera pas présent dans la réponse.

Response body

Vide.

Autorisation

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

Remarques

Si aucun handle n’est fermé pendant le traitement des demandes (par exemple, la valeur fournie x-ms-handle-id spécifie un handle non valide, ou si aucun handle ouvert n’a été trouvé dans le fichier ou répertoire fourni), vous obtenez une réponse 200 (OK) status avec x-ms-number-of-handles-closed=0.

L’en-tête x-ms-recursive est valide uniquement pour les répertoires. Si vous le spécifiez pour un fichier, vous obtiendrez une réponse 400 (demande incorrecte).

La fermeture forcée d’un handle ouvert avec FILE_FLAG_DELETE_ON_CLOSE peut ne pas entraîner la suppression du fichier.

Les handles de liste retournent l’ID x-ms-handle-id de handle côté service. Cet ID de handle est différent du handle côté client correspondant que SMB ou une application gère.

Voir aussi