Url Sharepoint Online REST 中的长度限制
Url length limitation in Sharepoint Online REST
当我尝试使用 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 个字符 url 的限制吗?
谢谢
SharePoint 有一定的软件边界,其中包括 URL 的长度。您可以在下面提到的 MSDN link 中找到 URL 路径长度限制的完整详细信息(这仍然适用于 SP2013)
https://technet.microsoft.com/en-in/library/ff919564(v=office.14).aspx
回到您的问题,您是否尝试过将 Javascript 对象模型与 sp.js 或 spservices 一起使用?您可以在这里找到快速入门助手。
https://msdn.microsoft.com/library/jj163201.aspx#BasicOps_FileTasks
不知道为什么限制是 256 个字符,但对于您的其他问题。
你是正确的防止这个 "url lenght exceed error" 你应该使用 /GetFileById
https://site_url/_api/web/GetFileById('file_unique_id')
此 api 仅当您的 "site_url" 非常大时才会出现 url 长度超出错误.
对于你问题中的这一行
"except some case where document library is SitePages"
这不是 correct.This 适用于所有图书馆的请求。
其他帮助也可以参考https://sharepoint.stackexchange.com/questions/194576/url-request-length-limit-when-using-rest-apis
当我尝试使用 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 个字符 url 的限制吗?
谢谢
SharePoint 有一定的软件边界,其中包括 URL 的长度。您可以在下面提到的 MSDN link 中找到 URL 路径长度限制的完整详细信息(这仍然适用于 SP2013)
https://technet.microsoft.com/en-in/library/ff919564(v=office.14).aspx
回到您的问题,您是否尝试过将 Javascript 对象模型与 sp.js 或 spservices 一起使用?您可以在这里找到快速入门助手。
https://msdn.microsoft.com/library/jj163201.aspx#BasicOps_FileTasks
不知道为什么限制是 256 个字符,但对于您的其他问题。 你是正确的防止这个 "url lenght exceed error" 你应该使用 /GetFileById
https://site_url/_api/web/GetFileById('file_unique_id')
此 api 仅当您的 "site_url" 非常大时才会出现 url 长度超出错误.
对于你问题中的这一行
"except some case where document library is SitePages"
这不是 correct.This 适用于所有图书馆的请求。
其他帮助也可以参考https://sharepoint.stackexchange.com/questions/194576/url-request-length-limit-when-using-rest-apis