使用Microsoft Graph上传大文件至OneDrive时遇404错误求助
解决OneDrive个人版创建上传会话时的404错误(提示"File name not provided in url")
这个问题其实是OneDrive个人版和商务版API的一个关键差异导致的——你现在用的端点格式在商务版中能正常工作,但个人版的createUploadSession接口明确要求在URL路径里指定目标文件名。
问题根源
OneDrive个人版的上传会话创建逻辑,需要你把要上传的文件名嵌入到请求URL中,而你当前的请求路径缺少这个必要参数,所以服务器返回404并提示文件名未提供。
具体修复步骤
把你的请求URL修改为以下格式:
POST /v1.0/drives/{drive-id}/items/{item-id}:/{your-target-filename}:/createUploadSession Authorization: bearer <token> Content-Type: application/json
这里的{your-target-filename}要替换成你实际要上传的文件名(比如vacation-photo.jpg)。
补充提示
- 如果你需要配置上传的额外规则(比如文件冲突时的处理方式),可以添加JSON请求体,示例如下:
{ "@microsoft.graph.conflictBehavior": "rename" } - 确认一下
{drive-id}和{item-id}都是个人版OneDrive的有效ID,避免因ID错误引发其他问题。
内容的提问来源于stack exchange,提问作者Pratik




