Partager via


Handles de liste

L’opération List Handles retourne une liste de handles ouverts sur un répertoire ou un fichier. Si vous le souhaitez, il peut énumérer de manière récursive les handles ouverts sur les répertoires et les fichiers. Cette API est disponible depuis la version 2018-11-09.

Disponibilité du protocole

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

Demander

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

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

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

Paramètres d’URI

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

Paramètre Description
marker Optionnel. Valeur de chaîne qui identifie la partie de la liste à retourner avec l’opération de List Handles suivante. L’opération retourne une valeur de marqueur dans le corps de la réponse, si la liste retournée n’a pas été terminée. Vous pouvez ensuite utiliser la valeur de marqueur dans un appel suivant pour demander l’ensemble suivant d’éléments de liste.

La valeur de marqueur est opaque pour le client.
maxresults Optionnel. Spécifie le nombre maximal de handles pris sur les fichiers ou répertoires à retourner.

La définition de maxresults sur une valeur inférieure ou égale à zéro entraîne le code de réponse d’erreur 400 (requête incorrecte).
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.
sharesnapshot Optionnel. Le paramètre sharesnapshot est une valeur de DateTime opaque qui, lorsqu’il est présent, spécifie l’instantané de partage à interroger pour 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 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 Obligatoire pour toutes les demandes autorisées, facultatif pour les demandes anonymes. 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-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-recursive Optionnel. 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 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.

Réponse

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 retourne le code d’état 200 (OK). 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êtes courants

En-tête de réponse Description
Content-Type Spécifie le format dans lequel les résultats sont retournés. Actuellement, cette valeur est application/xml.
x-ms-request-id Cet en-tête identifie de manière unique la demande qui a été effectuée et peut être utilisé 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 Vous pouvez utiliser cet en-tête 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 1024 caractères ASCII visibles. Si l’en-tête x-ms-client-request-id n’est pas présent dans la requête, cet en-tête ne sera pas présent dans la réponse.

Corps de la réponse

Le format de la réponse XML est le suivant. Notez que les éléments Marker, ShareSnapshotet MaxResults sont présents uniquement si vous les avez spécifiés sur l’URI de la requête. L’élément NextMarker a une valeur uniquement si les résultats de la liste ne sont pas terminés.

ClientName champ en réponse est facultatif et retourné uniquement lorsqu’il est disponible pour le service.

<?xml version="1.0" encoding="utf-8"?>  
<EnumerationResults>
    <HandleList>
        <Handle>
            <HandleId>handle-id</HandleId>
            <Path>file-or-directory-name-including-full-path</Path>
            <FileId>file-id</FileId>
            <ParentId>parent-file-id</ParentId>
            <SessionId>session-id</SessionId>
            <ClientIp>client-ip</ClientIp>
            <ClientName>client-name</ClientName>
            <OpenTime>opened-time</OpenTime>
            <LastReconnectTime>lastreconnect-time</LastReconnectTime>
            <AccessRightList>
                <AccessRight>Read</AccessRight>
                <AccessRight>Write</AccessRight>
                <AccessRight>Delete</AccessRight>
            </AccessRightList>
        </Handle>
        ...
    </HandleList>
    <NextMarker>next-marker</NextMarker>
</EnumerationResults>

Le tableau suivant décrit les champs du corps de la réponse :

Champ Description But
HandleId ID de handle de service XSMB, UINT64. Utilisé pour identifier le handle.
Path Nom de fichier, y compris le chemin d’accès complet, à partir de la racine du partage. Corde. Permet d’identifier le nom de l’objet pour lequel le handle est ouvert.
ClientIp Adresse IP du client qui a ouvert le handle. Corde. Utilisé pour décider si la poignée a pu être divulguée.
ClientName Champ facultatif. Prise en charge en 2024-02-04 et versions ultérieures. Nom du client (station de travail ou nom d’utilisateur du système d’exploitation) qui a ouvert le handle. Corde. Utilisé pour décider si la poignée a pu être divulguée.
OpenTime Le handle d’heure a été ouvert (UTC). DateTime sous forme de chaîne. Utilisé pour décider si la poignée a pu être divulguée. Les poignées divulguées ont généralement été ouvertes depuis longtemps.
LastReconnectTime Le handle d’heure a été ouvert (UTC). DateTime sous forme de chaîne. Utilisé pour déterminer si le handle a été rouvert après une déconnexion client/serveur, en raison d’une mise en réseau ou d’autres erreurs. Le champ est inclus dans le corps de la réponse uniquement si l’événement de déconnexion s’est produit et que le handle a été rouvert.
FileId ID de fichier, UINT64. FileId identifie de manière unique le fichier. Il est utile pendant les renommages, car le FileId ne change pas.
ParentId ID de fichier parent, UINT64. ParentId identifie de manière unique le répertoire. Cela est utile pendant les renommages, car le ParentId ne change pas.
SessionId ID de session SMB qui spécifie le contexte dans lequel le handle de fichier a été ouvert. UINT64. SessionId est inclus dans les journaux de l’observateur d’événements lorsque les sessions sont déconnectées de force. Il vous permet d’associer un lot spécifique de handles fuites à un incident réseau spécifique.
AccessRightList Autorisations d’accès accordées au handle ouvert sur le fichier ou le répertoire. Disponible dans le service version 2023-01-03 et ultérieure.

Permet d’interroger les autorisations d’accès conservées sur un fichier ou un répertoire par différents handles ouverts. Les valeurs possibles sont READ, WRITE et DELETE, ou une combinaison de ces valeurs.
NextMarker Chaîne qui décrit le handle suivant à répertorier. Il est retourné lorsque d’autres handles doivent être répertoriés pour terminer la demande. La chaîne est utilisée dans les requêtes suivantes pour répertorier les handles restants. L’absence de NextMarker indique que tous les handles pertinents ont été répertoriés.

Dans les versions 2021-12-02 et ultérieures, List Handles encodera en pourcentage (par RFC 2396) toutes les valeurs d’élément Path qui contiennent des caractères non valides dans XML (en particulier, U+FFFE ou U+FFFF). S’il est encodé, l’élément Path inclut un attribut Encoded=true. Notez que cela se produit uniquement pour les valeurs d’élément Path contenant les caractères non valides dans XML, et non pour les éléments Path restants dans la réponse.

ClientName est pris en charge dans la version 2024-02-04 et ultérieure.

Autorisation

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

Remarques

Le HandleId est un ID de handle côté service, distinct de l’ID de handle client. Le mappage entre les deux est possible au niveau du client.

Voir aussi