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


Сокращенный формат ссылок для совместного доступа в OneDrive и SharePoint

Теперь ссылки на общие файлы и папки в OneDrive и SharePoint короче и имеют новый формат. Например, ниже показаны старый и новый форматы ссылки OneDrive, подходящей для любого пользователя в организации.


Старый формат ссылок Новый формат ссылок
https://contoso-my.sharepoint.com/personal/john_contoso_com/_layouts/15/guestaccess.aspx?share=ERGZUIZ8E0pAuC1oJtwz4dQB23IabPgbMtiVe0OLPtMybw https://contoso-my.sharepoint.com/:w:/p/john_contoso_com/ERGZUIZ8E0pAuC1oJtwz4dQB23IabPgbMtiVe0OLPtMybw

Примечание.

Это изменение не повлияет на ссылки, которыми поделились до него. Такие ссылки по-прежнему работают.

Новый формат ссылок может повлиять на приложения и службы, которые просматривают или принимают зависимости от структур URL-адресов OneDrive или SharePoint, особенно если эти приложения и службы анализируют URL-адрес сайта или определенные строки. Новые короткие ссылки совместимы со всеми API, поддерживающими ссылки guestaccess.aspx.

Ниже приведены некоторые сценарии, на которые повлияет это изменение.

  • Приложения, которые анализируют введенный пользователем URL-адрес, чтобы получить URL-адрес для создания запросов REST API SharePoint, таких как GetFileByUrl и GetSharingLinkData.

  • Приложения, которые принимают введенный пользователем URL-адрес и используют CSOM для запроса информации о файле.

  • Приложения, которые анализируют введенный пользователем URL-адрес, чтобы определить, является ли он анонимной ссылкой или предназначен только для внутреннего использования.

Приложения, использующие Microsoft Graph для взаимодействия со ссылками SharePoint, по-прежнему работают. Дополнительные сведения см. в статье Доступ к общим элементам DriveItem.

REST API SharePoint

REST API SharePoint не поддерживают взаимодействие со ссылками, которые вводят пользователи. Рекомендуем при возможности перейти на API общих папок Microsoft Graph.

Если вам не удается перейти Microsoft Graph, можете воспользоваться описанным ниже обходным решением. Обратите внимание, что это решение не поддерживается.

  1. Определите базовый URL-адрес. Теперь это имя узла для ссылки.

  2. Составьте запрос API, сцепив базовый URL-адрес (SP.RemoteWeb) с определенным методом API, как показано ниже.

    {hostname}/_api/SP.RemoteWeb(@a)/web/{specific_api_here}?@a='{url_encoded_link}'

В качестве примера рассмотрим следующий входной URL-адрес:

https://contoso-my.sharepoint.com/personal/john_contoso_com/_layouts/15/guestaccess.aspx?share=ERGZUIZ8E0pAuC1oJtwz4dQB23IabPgbMtiVe0OLPtMybw

Это исходный запрос API:

https://contoso-my.sharepoint.com/personal/john_contoso_com/_api/web/GetFileByUrl(@url)?@url='https%3A%2F%2Fcontoso-my.sharepoint.com%2Fpersonal%2Fjohn_contoso_com%2F_layouts%2F15%2Fguestaccess.aspx%3Fshare%3DERGZUIZ8E0pAuC1oJtwz4dQB23IabPgbMtiVe0OLPtMybw

Это новый запрос API:

https://contoso-my.sharepoint.com/_api/SP.RemoteWeb(@url)/web/GetFileByUrl(@url)?@url='https%3A%2F%2Fcontoso-my.sharepoint.com%2Fpersonal%2Fjohn_contoso_com%2F_layouts%2F15%2Fguestaccess.aspx%3Fshare%3DERGZUIZ8E0pAuC1oJtwz4dQB23IabPgbMtiVe0OLPtMybw

Чтобы определить конкретный тип ссылки, проверьте поля IsSharingLink и IsAnonymousв ответе для API GetSharingLinkData (замените GetFileByUrl наGetSharingLinkData в примерах). Используйте этот метод вместо анализа URL-адресов на наличие маркеров, например guestaccess.aspx.

CSOM SharePoint

CSOM не поддерживает взаимодействие со ссылками, которые вводят пользователи. Некоторые приложения открывают ClientContext и запрашивают метаданные файла, последовательно усекая сегменты пути из ссылки SharePoint, пока конструктор ClientContext не будет успешно выполнен. Этот подход не работает с новым форматом URL-адресов.

Обходное решение:

  1. Откройте ClientContext на корневом сайте (схема://имя_узла).

  2. Вызовите метод Web.WebUrlFromPageUrlDirect(), чтобы получить URL-адрес сайта ссылки.

  3. Откройте новый ClientContext, используя этот URL-адрес сайта для отправки дополнительных запросов.

Примечание.

Этот способ не поддерживается.