содержимое файла разных версий в Sharepoint Online не загружается с помощью REST Call

Я пытаюсь загрузить файл с его основными и второстепенными версиями файла, используя REST API в java. Я могу загрузить только последнюю версию определенного файла, и когда я пытаюсь загрузить другие версии файла, я получаю 500 Internal Server Error.

URL-адрес для получения версий файла правильно возвращает все версии файла. Когда я пытаюсь получить содержимое разных версий, я получаю 500 Internal Server Error.

URL-адрес, который я использовал для получения разных версий файла,

"_api/Web/GetFileByServerRelativeUrl('%s')/Versions".

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

"_api/web/GetFileByServerRelativeUrl('%s')/$value".

Синтаксис URL для последней версии файла:

"https://имя_клиента.sharepoint.com/имя_папки/имя_файла".

Синтаксис URL для версий файла:

"https://имя_тенанта.sharepoint.com/_vti_history/идентификатор_версии/имя_папки/имя_файла".

Есть ли проблема с последним синтаксисом (т.е.) синтаксисом URL для версий файлов?

Кто-нибудь, пожалуйста, помогите мне.


person Gowtham    schedule 16.06.2016    source источник


Ответы (2)


Кажется, что не поддерживается указание URL-адреса версии файла в конечной точке /_api/web/GetFileByServerRelativeUrl, поскольку он исключает относительный URL-адрес сервера для фактического файла.

Поскольку в предоставленном URL-адресе версии файла нет ничего плохого, вы можете рассмотреть другой подход к его загрузке. Вместо использования конечной точки REST для содержимого файла /_api/web/GetFileByServerRelativeUrl('%s')/$value рассмотрите возможность загрузки файла с использованием абсолютного URL, как показано в примере ниже:

пример С#

using (var client = new HttpClient())
{
    var targetPath = @"c:\downloads";
    var sourceFileUrl = String.Format("{0}/_vti_history/512/Documents/SharePoint User Guide.docx",webUri);
    var response = client.GetAsync(sourceFileUrl).Result;

    var targetFileName = targetPath + System.IO.Path.GetFileName(sourceFileUrl);
    System.IO.File.WriteAllBytes(targetFileName, response.Content.ReadAsByteArrayAsync().Result);

}
person Vadim Gremyachev    schedule 16.06.2016

URL должен быть:

https://sharepoint-site.com/sites/Subsite/_vti_history/version_id/Documents/SharePoint User Guide.docx
person user3756357    schedule 28.12.2016