Поделиться через


Принудительное закрытие дескрипторов

Операция Force Close Handles закрывает дескриптор или дескриптор, открытый в каталоге или файле. Он поддерживает закрытие одного дескриптора, указанного идентификатором дескриптора в файле или каталоге. Он также поддерживает закрытие всех дескрипторов, открытых на этом ресурсе. При необходимости он поддерживает рекурсивно закрывающие дескрипторы в подресурсах, когда ресурс является каталогом.

Эта операция используется вместе с дескрипторов списка для принудительного закрытия дескрипторов, которые блокируют операции, такие как переименование каталога. Клиенты SMB могут утечки или потеряли отслеживание этих дескрипторов. Операция влияет на закрываемый дескриптор на стороне клиента, включая видимые пользователем ошибки из-за неудачных попыток чтения или записи файлов. Эта операция не предназначена для замены или альтернативы для закрытия сеанса SMB.

Эта операция доступна в версии 2018-11-09 и более поздних версий.

Доступность протокола

Протокол общей папки с включенным доступом Доступный
SMB Да
NFS Нет

Просьба

Запрос Force Close Handles создается следующим образом. Рекомендуется использовать ПРОТОКОЛ HTTPS.

Метод URI запроса ВЕРСИЯ HTTP
КЛАСТЬ 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 Необязательный. Непрозрачное значение даты и времени. Когда он присутствует, он указывает моментальный снимок общего ресурса для запроса списка дескрипторов.

Заголовки запросов

В следующей таблице описаны обязательные и необязательные заголовки запросов:

Заголовок запроса Описание
Authorization Обязательно. Указывает схему авторизации, имя учетной записи и подпись. Дополнительные сведения см. в статье Авторизация запросов к службе хранилища Azure.
Date или x-ms-date Обязательно. Указывает универсальное время (UTC) для запроса. Дополнительные сведения см. в статье Авторизация запросов к службе хранилища Azure.
x-ms-version Требуется для всех авторизованных запросов, но необязательно для анонимных запросов. Указывает версию операции, используемой для этого запроса. Дополнительные сведения см. в разделе Управление версиями служб хранилища Azure.
x-ms-client-request-id Необязательный. Предоставляет созданное клиентом непрозрачное значение с ограничением символов 1-kibibyte (KiB), записанным в журналах при настройке ведения журнала. Настоятельно рекомендуется использовать этот заголовок для сопоставления действий на стороне клиента с запросами, получаемыми сервером.
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, может не привести к удалению файла.

Дескриптор списка возвращает идентификатор дескриптора x-ms-handle-id на стороне службы. Этот идентификатор дескриптора отличается от соответствующего клиентского дескриптора, который поддерживает SMB или приложение.

См. также