Хранение и запрос метаданных контейнера

Применяется к: Для разработчиков

Используйте метаданные, если вашему приложению нужны структурированные поля в файлах в контейнере SharePoint Embedded. Метаданные хранятся в виде столбцов в элементах диска контейнера fileStorageContainer в виде столбцов и значений полей. Приложение отвечает за создание схемы столбцов и управление ею для каждого экземпляра контейнера. Полный список свойств ресурса контейнера см. в типе ресурса fileStorageContainer.

Разрешения и поддерживаемые вызывающие

Вызов API метаданных с помощью маркера носителя только для приложения или делегированного маркера носителя. Используется FileStorageContainer.Selected для приложений и делегированных звонков.

Владельцы и менеджеры контейнеров могут создавать, обновлять и удалять столбцы. Участники контейнера могут читать и перечислять столбцы.

Выбор типов столбцов

Метаданные SharePoint Embedded поддерживают следующие свойства типов столбцов: boolean, choice, currency, numberpersonOrGroupdateTimehyperlinkOrPictureи .text Он также поддерживает такие параметры столбцов, как indexed, namereadOnlyisDeletableisSealedи .type

Имена столбцов должны соответствовать правилам SharePoint. Не используйте имена, которые содержат !, начинаются с цифры или знаки препинания, содержат пробелы, выглядят как ссылки на ячейки электронной таблицы, представляют собой локализованные значения "истина" или "ложь", а также используйте зарезервированные имена, такие как Author, Created, или Description.

Создание столбца

Перед записью значений полей в файлы создайте столбец в контейнере.

POST https://graph.microsoft.com/beta/storage/fileStorage/containers/{container-id}/columns
Content-Type: application/json
{
  "description": "test",
  "displayName": "Title",
  "enforceUniqueValues": false,
  "hidden": false,
  "indexed": false,
  "name": "Title",
  "text": {
    "allowMultipleLines": false,
    "appendChangesToExistingText": false,
    "linesForEditing": 0,
    "maxLength": 255
  }
}

Запрос на создание не поддерживает type, и текст maxLength должен быть меньше или равен 255.

Примечание.

С января 2026 г. API столбцов контейнера (перечисление, создание, обновление, удаление столбцов) также общедоступны в конечной точке Microsoft Graph версии 1.0 . Вы можете заменить /beta/ на /v1.0/ в столбце запросов ниже. Конечная точка бета-версии остается доступной.

Управление столбцами

Используйте идентификатор столбца, возвращенный операцией Create или list.

GET https://graph.microsoft.com/beta/storage/fileStorage/containers/{container-id}/columns
GET https://graph.microsoft.com/beta/storage/fileStorage/containers/{container-id}/columns/{column-id}
PATCH https://graph.microsoft.com/beta/storage/fileStorage/containers/{container-id}/columns/{column-id}
DELETE https://graph.microsoft.com/beta/storage/fileStorage/containers/{container-id}/columns/{column-id}

Исправление поддерживаемых свойств при изменении схемы. Можно обновить любое свойство столбца, кроме id свойства.

{
  "required": true,
  "hidden": false,
  "description": "This is my new column description"
}

Чтение и запись метаданных файла

Значения полей хранятся в полях элементов списка элемента диска. Прочтите все поля или выберите те, которые нужны вашему пользовательскому интерфейсу.

GET https://graph.microsoft.com/beta/drives/{drive-id}/items/{item-id}/listitem/fields
GET https://graph.microsoft.com/beta/drives/{drive-id}/items/{item-id}/listitem/fields?$select=Name,Color

Исправление значений полей для обновления метаданных. Используется null для удаления значения поля, если столбец допускает пустые значения.

PATCH https://graph.microsoft.com/beta/drives/{drive-id}/items/{item-id}/listitem/fields
Content-Type: application/json
{
  "Color": "Fuchsia",
  "Quantity": 934
}
{
  "Color": null
}

Запрос файлов по метаданным

Используйте параметры запросов OData для настраиваемых столбцов, если вам нужна структурированная фильтрация или упорядочивание внутри диска контейнера.

GET https://graph.microsoft.com/beta/drives/{drive-id}/items?$orderby=listitem/fields/TestField asc&$filter=startswith(listitem/fields/TestField, '3')&$expand=listitem($expand=fields)

Используется $expand=listitem($expand=fields) , если для получения результата требуются значения полей в ответе. Создавайте индексированные столбцы для часто выполняемых фильтров с высокой кратностью.

Полнотекстовый поиск по контейнерам и пользовательским метаданным см. в статье Поиск в контейнерах и файлах. Фильтрацию семантического извлечения по индексированным пользовательским метаданным см. в разделе Фильтрация извлечения по пользовательским метаданным. В обоих случаях используются управляемые свойства SharePoint, например свойство, созданное OWSTEXT для текстового столбца.

Используйте OData $filter для структурированных запросов внутри одного диска контейнера. Используйте поиск для текстовых запросов во многих контейнерах или используйте API извлечения для возврата извлечений для граундинга ИИ.

Поддерживайте согласованность схемы

Создайте обязательные столбцы во время подготовки контейнера. Сохраняйте ожидаемую версию схемы в данных приложения и запускайте миграцию при появлении новых столбцов. Не удаляйте столбцы до тех пор, пока не убедитесь, что рабочие процессы, запросы, экспорт или возможности поиска зависят от их значений.

Дальнейшие действия