【发布时间】:2017-10-10 15:08:27
【问题描述】:
我在使用 v1.0 Microsoft Graph API 将文件上传到上传会话时遇到问题。 我的步骤:
- 获取访问令牌:成功
- 选择文件/创建上传会话:成功(我返回一个 uploadUrl 来上传字节)
- 上传字节到 uploadUrl:失败并出现以下错误。
这是我收到的错误:
{
"error":
{
"code":"invalidRequest",
"message":"The Content-Range header is missing or malformed."
}
}
我已尝试使用以下格式,但仍然收到相同的错误。
"bytes 0-100/100"
"0-100/100"
"0-100"
我正在关注这篇来自 Mircosoft https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/item_createuploadsession的文章
这是我上传到从创建上传会话中检索到的 uploadUrl 的函数
public uploadToSession(file: HTMLInputElement, session: any, fileData: any) {
var headers = new Headers();
headers.append('Content-Length', fileData.length); //(ie: "100")
headers.append('Content-Range', fileData.range); //(ie: "bytes 0-100/100")
this.http.put(session.uploadUrl, { headers })
.subscribe(
(res: Response) => console.log(res),
error => console.log(error)
);
}
非常感谢任何帮助!提前致谢。
【问题讨论】:
-
这个 API 背后的想法是你正在发送块,对吗?所以它的工作原理是总文件大小大于一个块,即
bytes 0-50/100,然后是bytes 50-100/100。 -
API 旨在允许发送卡盘是正确的,但是,据我了解,只要大小小于 60 MiB,您也可以发送整个文件。您是否看过说明您不能一次发送整个文件的文档?我试图避免根据大小使用两种不同的上传方法,但如果这是唯一的方法,那就这样吧。
-
不 - 我找不到任何东西,但你的代码看起来不错,所以我正在创新可能发生的潜在问题
标签: typescript sharepoint microsoft-graph-api