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

Операция 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/actionMicrosoft.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 или приложение.

См. также раздел