版本方法的O365 REST API错误响应

时间:2019-04-24 17:58:13

标签: rest sharepoint

Microsoft Office 365 SharePoint中的大文件不支持版本请求。

我已将问题隔离到文件大小。这是Microsoft O365上的一个共享点部署。

问题似乎与Microsoft’ Rest API一起使用,并且似乎与文件的大小有关。这对我来说毫无意义,但我的测试数据反映了这些事实。

当我请求版本时,会收到此回复,但仅适用于大小大于1 GB 的文件:

  

由于对象的当前状态,该操作无效。

我已经尝试了Microsoft支持,但在错误消息或如何更改对象状态方面,他们没有提供任何帮助。

任何社区的见解都将不胜感激,因为该错误使我无法在站点之间进行迁移。

我的测试

文件已解锁。它是可见的,并已签入用户。我有管理特权。一个非常简单的GET版本会导致错误。

测试1:文件格式有什么区别吗?

第1步 :我将ISO文件压缩并存储在同一位置。

第2步 :当我使用REST API探索版本时,遇到相同的错误:

  

由于对象的当前状态,该操作无效。

测试2:文件是否以某种方式损坏?

步骤1 :使用新名称将.ISO文件上传到相同位置。

第2步 :当我使用REST AP浏览版本时,出现相同的错误:

  

由于对象的当前状态,该操作无效。

测试3:错误与尺寸有关吗?

步骤1 :我创建了一个小程序来生成文本文件,该文件一遍又一遍地重复文本字符串This is a test string that is 4文件的大小(以GB为单位)。

第2步 :创建一个1 GB的文件 test.txt

第3步 :创建一个4 GB的文件, test4.txt

第4步 :将文件传输到该文件夹​​。

第5步 :使用REST API检索 test.txt 版本,有效

<?xml version="1.0" encoding="utf-8"?><feed ...

第6步 :使用REST API检索 test4.txt 版本,失败 >:

<m:error
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<m:code>-1, System.InvalidOperationException</m:code> <m:message
xml:lang="en-US"> Operation is not valid due to the current state of
the object. </m:message> </m:error>

这使我相信Sharepoint的O365实施存在与大小有关的问题。过去,文件大小超过2GB一直存在问题,但是今天Microsoft声称单个文件最多可以存储30 GB:

https://support.office.com/en-us/article/File-size-limits-for-workbooks-in-SharePoint-Online-9E5BC6F8-018F-415A-B890-5452687B325E

鉴于我的所有文件都在Microsoft提供的指导之内,所有文件的行为应相同。


来自Microsoft网站

当前工作簿的文件大小限制是什么?

您的文件大小限制由您对Office 365的特定订阅确定。

如果您的Office 365订阅包括…并且工作簿存储在此处…那么这些文件大小限制将应用于浏览器窗口中的工作簿

SharePoint Online在线网站(例如团队网站)中的库0-30 MB 附加到电子邮件的Outlook Web App 0-10 MB

如果您试图在Outlook Web App中打开附加到电子邮件的工作簿,则文件大小的限制会更小。在这种情况下,工作簿必须小于10 MB才能在浏览器窗口中打开。

如果您正在使用Excel Online和Power BI,则将应用不同的文件大小限制。有关更多信息,请参阅Power BI中的数据存储和减小Power BI工作簿的大小。

这是REST API GET,非常简单:

https://oceusnetworks.sharepoint.com/opp/_api/web/GetFileByServerRelativeUrl('/opp/Opportunities%202018/RPW%20Spectrum%20Prototype%20Technologies/03-Delivery/Deliverables/Software%20and%20License%20Keys/Windows/WIN2016-SESS_X64FRE_EN-US_DV9.ISO')/Versions

以下是网址:

https://oceusnetworks.sharepoint.com/opp/_api/web/GetFileByServerRelativeUrl('/opp/Opportunities%202018/RPW%20Spectrum%20Prototype%20Technologies/03-Delivery/Deliverables/Software%20and%20License%20Keys/Windows/WIN2016-SESS_X64FRE_EN-US_DV9.ISO')/Versions

和响应:

<m:error xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<m:code>-1, System.InvalidOperationException</m:code>
<m:message xml:lang="en-US">
Operation is not valid due to the current state of the object.
</m:message>
</m:error>

同一目录中的另一个文件:

https://oceusnetworks.sharepoint.com/opp/_api/web/GetFileByServerRelativeUrl('/opp/Opportunities%202018/RPW%20Spectrum%20Prototype%20Technologies/03-Delivery/Deliverables/Software%20and%20License%20Keys/Windows/WIN2016-SESS_X64FRE_EN-US_DV9.MDS')/Versions

具有预期的响应(为简洁起见,XML响应被截断了):

< ? xml version="1.0" encoding="utf-8"?><feed ... ></feed>

0 个答案:

没有答案