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 des répertoires et des fichiers. Cette API est disponible à partir de la version 2018-11-09.
Disponibilité du protocole
Protocole de partage de fichiers activé | Disponible |
---|---|
SMB | |
NFS |
Requête
Vous pouvez construire la List Handles
requête comme suit. HTTPS est recommandé.
Méthode | URI de demande | Version HTTP |
---|---|---|
GET |
https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfileordirectory?comp=listhandles |
HTTP/1.1 |
Remplacez les composants du chemin indiqués dans l'URI de la demande par les vôtres, comme suit :
Composant Path | Description |
---|---|
myaccount |
nom de votre compte de stockage. |
myshare |
Nom du partage de fichiers. |
mydirectorypath |
Optionnel. 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 Affectation de noms et référencement de partages, répertoires, fichiers et métadonnées.
Paramètres URI
Vous pouvez spécifier les paramètres supplémentaires suivants sur l’URI.
Paramètre | Description |
---|---|
marker |
facultatif. Valeur de chaîne qui identifie la partie de la liste à retourner avec l’opération suivante List Handles . L’opération retourne une valeur de marqueur dans le corps de la réponse, si la liste retournée n’est pas complète. Vous pouvez ensuite utiliser la valeur de marqueur dans un appel suivant pour demander le jeu d’éléments de liste suivant.La valeur de marqueur est opaque au client. |
maxresults |
Optionnel. Spécifie le nombre maximal de handles pris sur les fichiers ou répertoires à retourner. La définition de maxresults à une valeur inférieure ou égale à zéro entraîne un code de réponse d'erreur 400 (Demande incorrecte). |
timeout |
Optionnel. 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. |
sharesnapshot |
Optionnel. Le sharesnapshot paramètre est une valeur opaque DateTime qui, lorsqu’il est présent, 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 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 |
Obligatoire pour toutes les demandes autorisées, facultatif pour les demandes 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 |
Optionnel. 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 que le serveur reçoit. Pour plus d’informations, consultez Surveiller 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 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 la version 2022-11-02 et ultérieure. |
x-ms-allow-trailing-dot: { <Boolean> } |
Optionnel. 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 supprimé ou non. Pour plus d’informations, consultez Affectation de noms et référencement de partages, de répertoires, de fichiers et de métadonnées. |
Corps de la demande
Aucune.
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 |
---|---|
Content-Type |
Spécifie le format dans lequel les résultats sont renvoyés. Actuellement, cette valeur est application/xml . |
x-ms-request-id |
Cet en-tête identifie de manière unique la requête qui a été effectuée et peut être utilisé 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 |
Vous pouvez utiliser cet en-tête 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, cet en-tête ne sera pas présent dans la réponse. |
Response body
Le format de la réponse XML est le suivant. Notez que les Marker
éléments , ShareSnapshot
et MaxResults
sont présents uniquement si vous les avez spécifiés sur l’URI de requête. L’élément NextMarker
a une valeur uniquement si les résultats de la liste ne sont pas terminés.
<?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>
<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 | Objectif |
---|---|---|
HandleId |
ID de handle de service XSMB, UINT64. | Utilisé pour identifier le handle. |
Path |
Nom du fichier, y compris le chemin d’accès complet, à partir de la racine du partage. Chaîne. | Utilisé pour identifier le nom de l’objet pour lequel le handle est ouvert. |
ClientIp |
Adresse IP cliente qui a ouvert le handle. Chaîne. | Utilisé pour déterminer si le handle a peut-être été divulgué. |
OpenTime |
Le handle d’heure a été ouvert (UTC).
DateTime en tant que Chaîne. |
Utilisé pour déterminer si le handle a peut-être été divulgué. Les handles ayant fui sont généralement ouverts depuis longtemps. |
LastReconnectTime |
Le handle d’heure a été ouvert (UTC).
DateTime en tant que Chaîne. |
Permet de déterminer si le handle a été rouvert après la déconnexion d’un client/serveur, en raison d’une panne de mise en réseau ou d’autres. Le champ n’est inclus dans le corps de la réponse que si l’événement de déconnexion s’est produit et que le handle a été rouvert. |
FileId |
ID de fichier, UINT64. |
FileId identifie le fichier de manière unique. Il est utile lors des 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 lors des 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. Utilisé pour interroger les autorisations d’accès détenues 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
l’encodage en pourcentage (selon la RFC 2396) de toutes les Path
valeurs d’élément 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 Encoded=true
attribut. Notez que cela se produit uniquement pour les Path
valeurs d’élément contenant les caractères non valides en XML, et non pour les éléments restants Path
de la réponse.
Autorisation
Seul le propriétaire du compte peut appeler cette opération.
Notes
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.