2017-04-27 39 views
1

今天,我通过Microsoft Graph API发现OneDrive的可恢复上载功能存在问题,如here所述。我有以前工作过的集成测试,现在失败了。可恢复上载返回上传块时未经授权

我成功拨打createUploadSession并获得uploadUrl使用。我在这里用“XXX”替换了实际的令牌。

POST https://graph.microsoft.com/V1.0/groups/273c2c33-8533-445d-ae65-4b63be296995/drive/root:/c2fa1a83-74f3-444b-9263-c9539ee3eae2.txt:/createUploadSession HTTP/1.1 
Authorization: Bearer XXX 

{ 
    "item": { 
    "@microsoft.graph.conflictBehaviour": "replace" 
    } 
} 

响应:

{ 
    "@odata.context": "https://graph.microsoft.com/V1.0/$metadata#microsoft.graph.uploadSession", 
    "expirationDateTime": "2017-04-27T11:07:50.5650598Z", 
    "nextExpectedRanges": ["0-"], 
    "uploadUrl": "https://sageglodbizp.sharepoint.com/sites/SharePointTests/_api/v2.0/drive/items/01LQXPMG56Y2GOVW7725BZO354PWSELRRZ/uploadSession?guid='9d14ed72-e532-442e-94e8-70952b365527'&path='~tmp0B_c2fa1a83-74f3-444b-9263-c9539ee3eae2.txt'&overwrite=True&rename=False&access_token=XXX" 
} 

所以uploadUrl是存在的。于是,我尝试在响应把一个块到这个网址却得到了一个401 Unauthorized

PUT https://sageglodbizp.sharepoint.com/sites/SharePointTests/_api/v2.0/drive/items/01LQXPMG56Y2GOVW7725BZO354PWSELRRZ/uploadSession?guid='9d14ed72-e532-442e-94e8-70952b365527'&path='~tmp0B_c2fa1a83-74f3-444b-9263-c9539ee3eae2.txt'&overwrite=True&rename=False&access_token=XXX HTTP/1.1 
Authorization: Bearer XXX 

响应

HTTP/1.1 401 Unauthorized 

由于我使用的是由图形API提供的网址,我认为这是一个错误。我将第一个调用传递给第二个调用(我也尝试过,没有访问令牌,因为它有一个在URL中)。

我试过这两个不同的Office 365租户,两者都有相同的结果。

这以前工作。任何想法为什么这停止工作? uploadUrl指向我的SharePoint端点而不是Graph API是否正确?

我还应该补充说,一个不可恢复的直接上传到Graph API的工作正常。

任何建议最受欢迎。

编辑

这似乎是通过文件名的长度会影响您上传到:

myfile-123100000000000000000000000.txt作品成功

myfile-1231000000000000000000000000.txt失败

回答

2

证实了这一点,通过微软的错误,并固定在周六29 /周日4月30日2017年

+0

你有问题的链接吗? – toussa

+0

@toussa没有抱歉,我们刚刚在电子邮件中提供了这些信息,其中说一些数据已添加到'access_token'查询参数中,该参数将URL推送到SharePoint的2048个字符限制之内。这就是它受文件名长度影响的原因。 –

1

documentation

发出PUT调用时包含授权标头可能会导致HTTP 401 Unauthoized响应。只有在第一步中发布POST时才应该发送Authoization标头和不记名标记。发布PUT时不应该包含它。

如果您从您的PUT调用中删除Authorization: Bearer XXX标题应解决此问题。

+1

@Marc您好,感谢您的评论。我会说两件事情 - 首先,虽然这确实在文档中指定,但很容易错过。我认为你不应该以这种方式改变实时系统的行为,这会破坏部署给客户的代码。其次,当我删除不记名令牌时,我现在又得到了一个不同的错误,再次从以前的代码 - 我已经提出http://stackoverflow.com/questions/43663087/microsoft-graph-api-resumable- upload-returns-404-when-uploading-chunk –

+0

@Marc LaFleur - MSFT我在这里有一个类似的问题:https://stackoverflow.com/questions/45197925/microsoft-graph-resumable-upload-url-returning- v2-onedrive-api-upload-url?noredirect = 1#comment77363559_45197925 – tjcinnamon

相关问题