簡體   English   中英

使用REST調用無法下載Sharepoint Online中不同版本的文件內容

[英]file contents of different versions in Sharepoint Online not getting downloaded using REST Call

我正在嘗試使用Java中的REST API下載文件的主要版本和次要版本。 我只能下載特定文件的最新版本,當我嘗試下載文件的其他版本時,出現500 Internal Server Error。

用於獲取文件版本的URL會正確返回文件的所有版本。 當我嘗試獲取不同版本的內容時,出現500 Internal Server Error。

我用來獲取文件的不同版本的URL是

_api / Web / GetFileByServerRelativeUrl('%s')/ Versions ”。

我用來獲取文件內容的URL是

_api / web / GetFileByServerRelativeUrl('%s')/ $ value ”。

文件最新版本的URL語法為

“ https:// tenant_name .sharepoint.com / folder_name / file_name ”。

文件版本的URL語法為

“ https:// tenant_name .sharepoint.com / _vti_history / version_id / folder_name / file_name ”。

文件版本的后一種語法(即URL語法)是否存在問題?

有人請幫幫我。

似乎支持在端點/_api/web/GetFileByServerRelativeUrl為文件版本指定url,因為它不包括實際文件的服務器相對url。

由於提供的文件版本網址沒有任何問題,您可以考慮采用其他方法下載它。 與其使用REST端點獲取文件內容/_api/web/GetFileByServerRelativeUrl('%s')/$value ,不如考慮使用絕對 URL下載文件,如以下示例所示:

C#示例

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);

}

網址應為:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM