当我尝试使用REST从Sharepoint Online下载文件时,通过调用_api / web / GetFileByServerRelativeUrl,有时,我收到错误: 此请求的URL长度超过配置的maxUrlLength值。
所以,因为这是Sharepoint Online,没有办法改变这个配置(它自己的限制也不清楚,为什么256而不是1024 ??,或者为什么要限制?) 所以,我试图找到这个问题的解决方案,发现我可以调用另一个REST方法:/ _api / web / GetFileById并提供唯一的id,这在95%的情况下工作,除了文档库是SitePages的情况或者文件的URL非常大(即使我尝试使用GetFileById下载),这里的错误是404 - 找不到。
因此,Web服务允许访问和下载这些文件,但是Web服务不能与OAuth令牌一起使用(我的客户需要OAuth)。
还有其他解决方案吗?或者有机会影响256个字符的网址限制?
由于
答案 0 :(得分:0)
SharePoint存在某些软件边界,其中包括URL的长度。您可以在下面提到的MSDN链接中找到URL路径长度限制的完整详细信息(这仍然适用于SP2013)
https://technet.microsoft.com/en-in/library/ff919564(v=office.14).aspx
回到你的问题,你尝试过使用带有sp.js或spservices的Javascript对象模型吗?你可以在这里找到快速启动助手。
https://msdn.microsoft.com/library/jj163201.aspx#BasicOps_FileTasks
答案 1 :(得分:0)
不知道为什么限制为256个字符,但是您的其他问题。 你是正确的,这可以防止这种情况超过错误"你应该使用 / GetFileById
https://site_url/_api/web/GetFileById('file_unique_id')
这个api只有在你的" site_url"由于拥有大型站点名称或大型站点层次深度,因此请求将失败。
问题中的这一行
"除了文档库是SitePages"
的某些情况这不正确。此请求适用于所有库。
如需其他帮助,您也可以参考https://sharepoint.stackexchange.com/questions/194576/url-request-length-limit-when-using-rest-apis