Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
665 views
in Technique[技术] by (71.8m points)

onedrive - Resumable upload returns Unauthorized when uploading chunk

Today I have a problem with the resumable upload feature of OneDrive via the Microsoft Graph API, as described here. I have integration tests which previously worked, which now fail.

I successfully call createUploadSession and get an uploadUrl to use. I've replaced actual tokens with "XXX" here.

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"
  }
}

Response:

{
    "@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"
}

So the uploadUrl is there. Then, I try to PUT a chunk to this url but get a 401 Unauthorized in response:

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

Response

HTTP/1.1 401 Unauthorized

As I'm using the URL provided by the Graph API, I believe this to be a bug. I'm passing the same bearer token to the second call as the first (I've also tried it with no access token, given that one is in the URL).

I have tried this with two different Office 365 tenants, both with the same result.

This has previously worked. Any thoughts on why this has stopped working? Is it correct that the uploadUrl points to my SharePoint endpoint rather than the Graph API?

I should also add, a non-resumable upload directly to the Graph API works fine.

Any suggestions most welcome.

EDIT:

This seems to be affected by the length of the filename to which you upload:

myfile-123100000000000000000000000.txt works successfully

myfile-1231000000000000000000000000.txt fails

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

This was confirmed as a bug by Microsoft and fixed on Saturday 29 / Sunday 30 April 2017.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...