Принудительное закрытие дескрипторов
Операция Force Close Handles
закрывает дескриптор или дескриптор, открытый в каталоге или файле. Он поддерживает закрытие одного дескриптора, указанного идентификатором дескриптора, в файле или каталоге. Он также поддерживает закрытие всех дескрипторов, открытых в этом ресурсе. При необходимости он поддерживает рекурсивно закрывающие дескрипторы во вложенных ресурсах, если ресурс является каталогом.
Эта операция используется вместе с дескриптором списка для принудительного закрытия дескрипторов, блокируя операции, такие как переименование каталога. Клиенты SMB могли иметь утечку или потерю отслеживания этих дескрипторов. Операция влияет на закрывающийся дескриптор на стороне клиента, включая ошибки, видимые пользователем из-за неудачных попыток чтения или записи файлов. Эта операция не предназначена для замены или альтернативы закрытию сеанса SMB.
Эта операция доступна в версии 2018-11-09 и более поздних версиях.
Доступность протокола
Включенный протокол общей папки | Доступно |
---|---|
SMB | |
NFS |
Запрос
Запрос можно создать Force Close Handles
следующим образом. Рекомендуется использовать ПРОТОКОЛ HTTPS.
Метод | Универсальный код ресурса (URI) запроса | параметр "Версия HTTP" |
---|---|---|
PUT |
https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfileordirectory?comp=forceclosehandles |
HTTP/1.1 |
Замените компоненты пути, показанный в URI запроса, следующим образом:
Компонент path | Описание |
---|---|
myaccount |
Имя учетной записи хранения. |
myshare |
Имя файлового ресурса. |
mydirectorypath |
Необязательный элемент. Путь к каталогу. |
myfileordirectory |
Имя файла или каталога. |
Дополнительные сведения об ограничениях именования путей см. в статье Именование общих папок, каталогов, файлов и метаданных и ссылки на нее.
Параметры универсального кода ресурса (URI)
В URI можно указать следующие дополнительные параметры:
Параметр | Описание |
---|---|
timeout |
Необязательный элемент. Выражается в секундах. Дополнительные сведения см. в разделе Установка времени ожидания для операций службы файлов. |
marker |
Необязательный элемент. Строковое значение, определяющее положение дескрипторов, которые будут закрыты при следующей Force Close Handles операции. Операция возвращает значение маркера в тексте ответа, если есть дополнительные маркеры для закрытия. Затем значение маркера можно использовать в последующем вызове для закрытия следующего набора дескрипторов.Значение маркера непрозрачно для клиента. |
sharesnapshot |
Необязательный элемент. Непрозрачное значение даты и времени. При наличии он указывает общий snapshot для запроса списка дескрипторов. |
Заголовки запросов
В следующей таблице описаны обязательные и необязательные заголовки запросов.
Заголовок запроса | Описание |
---|---|
Authorization |
Обязательный. Указывает схему авторизации, имя учетной записи и подпись. Дополнительные сведения см. в статье Авторизация запросов к Службе хранилища Azure. |
Date или x-ms-date |
Обязательный. Задает время запроса в формате UTC. Дополнительные сведения см. в статье Авторизация запросов к Службе хранилища Azure. |
x-ms-version |
Обязательный для всех авторизованных запросов, но необязательный для анонимных запросов. Задает версию операции, используемой для этого запроса. Дополнительные сведения см. в разделе Управление версиями для служб хранилища Azure. |
x-ms-client-request-id |
Необязательный элемент. Предоставляет созданное клиентом непрозрачное значение с ограничением в 1 кибибайт (КиБ), которое записывается в журналы при настройке ведения журнала. Мы настоятельно рекомендуем использовать этот заголовок для сопоставления действий на стороне клиента с запросами, получаемыми сервером. |
x-ms-handle-id |
Обязательный. Указывает идентификатор закрываемого дескриптора. Используйте звездочку (*) в качестве строки с подстановочными знаками, чтобы указать все дескрипторы. |
x-ms-recursive |
Необязательный элемент. Логическое значение, указывающее, должна ли операция также применяться к файлам и подкаталогам каталога, указанного в URI. |
x-ms-file-request-intent |
Требуется, если Authorization заголовок указывает токен OAuth. Допустимое значение — backup . Этот заголовок указывает, что Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action или должны быть предоставлены, если они включены в политику RBAC, назначенную удостоверению, которое авторизовано с помощью заголовка Authorization . Доступно для версии 2022-11-02 и более поздних версий. |
x-ms-allow-trailing-dot: { <Boolean> } |
Необязательный элемент. Версия 2022-11-02 и более поздние. Логическое значение указывает, следует ли обрезать завершающую точку в URL-адресе запроса. Дополнительные сведения см. в разделе Именование общих папок, каталогов, файлов и метаданных и ссылки на нее. |
Текст запроса
Нет.
Ответ
Ответ включает код состояния HTTP, набор заголовков ответа и текст ответа в XML-формате.
Код состояния
Успешная операция возвращает код состояния 200 (ОК).
Сведения о кодах состояния см. в разделе Коды состояния и ошибок.
Заголовки ответов
Ответ для этой операции включает следующие заголовки. Ответ также может содержать дополнительные стандартные заголовки HTTP. Все стандартные заголовки соответствуют спецификации протокола HTTP/1.1.
Заголовок ответа | Описание |
---|---|
x-ms-request-id |
Однозначно идентифицирует выполненный запрос. Его можно использовать для устранения неполадок с запросом. Дополнительные сведения см. в разделе Устранение неполадок с операциями API. |
x-ms-version |
Указывает версию Файлы Azure, используемую для выполнения запроса. |
Date |
Значение даты и времени в формате UTC, указывающее время, в которое служба отправила ответ. |
x-ms-marker |
Описывает следующий закрываемый дескриптор. Эта строка возвращается, когда для выполнения запроса необходимо закрыть дополнительные дескрипторы. Строка используется в последующих запросах для принудительного закрытия оставшихся дескрипторов. Отсутствие x-ms-marker указывает на то, что все соответствующие дескрипторы были закрыты. |
x-ms-number-of-handles-closed |
Указывает количество закрытых дескрипторов. |
x-ms-number-of-handles-failed |
Указывает количество дескрипторов, которые не удалось закрыть. |
x-ms-client-request-id |
Может использоваться для устранения неполадок с запросами и соответствующими ответами. Значение этого заголовка равно значению заголовка x-ms-client-request-id , если он присутствует в запросе и содержит не более 1024 видимых символов ASCII. Если заголовок x-ms-client-request-id отсутствует в запросе, этот заголовок не будет присутствовать в ответе. |
Текст ответа
Пустой.
Авторизация
Только владелец учетной записи может вызывать эту операцию.
Комментарии
Если во время обработки запросов не закрываются дескрипторы (например, предоставленное x-ms-handle-id
значение указывает недопустимый дескриптор или в предоставленном файле или каталоге не найдены открытые дескрипторы), вы получите ответ о состоянии 200 (ОК) с x-ms-number-of-handles-closed=0
.
Заголовок x-ms-recursive
действителен только для каталогов. Если указать его для файла, вы получите ответ 400 (недопустимый запрос).
Принудительное закрытие дескриптора, открытого с помощью FILE_FLAG_DELETE_ON_CLOSE
, может не привести к удалению файла.
List Handles возвращает идентификатор дескриптора x-ms-handle-id
на стороне службы. Этот идентификатор дескриптора отличается от соответствующего дескриптора на стороне клиента, который поддерживает SMB или приложение.