我正在尝试使用一个驱动器图形API将文件夹上传到我的一个驱动器文件夹。
使用常规上传效果很好。
我还在测试可恢复的上传,该上传用于大型文件。但这是我得到奇怪回应的地方。
我正在关注以下链接:https://docs.microsoft.com/en-us/onedrive/developer/rest-api/api/driveitem_createuploadsession。
首先,我使用“ https://graph.microsoft.com/v1.0/me/drive/items/xxxxxxxxxx:/filename.txt:/createUploadSession”创建了一个上传会话。
这会给我返回一个uploadUrl值,例如“ https://api.onedrive.com/rup/xxxxxxxxxxxxx”
然后我用正确的标题向该URL发出PUT请求。
我收到的响应是一个400(错误请求),其中包含以下文本(包括HTML):
<h2>Our services aren't available right now</h2><p>We're working to restore all services as soon as possible. Please check back soon.</p>Ref A: 235A863C95DC45BE98688D905A7DB3C1 Ref B: BUH01EDGE0107 Ref C: 2018-08-28T18:56:52Z
我已经得到了3天了,我似乎无法获得Microsoft的任何支持。根据该网站的说法,一切都在运行:https://portal.office.com/servicestatus
有人知道我为什么收到此错误吗?
答案 0 :(得分:0)
我找到了导致错误的原因。
我收到错误消息是因为我在标头中提供了身份验证令牌。
对于小文件上传是必需的,但对于大文件上传则不是必需的。
我对PUT,POST和GET请求使用了相同的代码,我只传递URL和HTTP内容,而且我总是会添加auth标头。但是对于大型文件上传,则不是必需的。
但是由于添加不需要的标头,仍然会收到非常奇怪的错误响应。