【问题标题】:Uploading Empty (0 Byte) to SharePoint Online将空(0 字节)上传到 SharePoint Online
【发布时间】:2020-11-20 21:54:59
【问题描述】:

我正在开发一个节点服务,它将文件在线推送到 SharePoint。 我们正在使用官方的 Graph SDK for JavaScript(..and Types)。

到目前为止 - 一切都很好,但如果文件夹包含长度为 0 的文件,我找不到将这些文件推送到驱动器的方法。

如果我尝试使用MicrosoftGraph.LargeFileUploadTask JavaScript 类或OneDriveLargeFileUploadTask,上传甚至不会开始,因为uploadSlice() 中“Content-Length”标头的格式设置失败。

我们可以跳过类的代码,自己上传一个空切片(所有代码只适用于空文件):

uploadedFile = await client
    .api(uploadSession.url)
    .headers({
        "Content-Length": `0`,
        "Content-Range": `bytes 0-0/0`,
    })
    .put(file); //file is an empty Buffer

结果:Error: The Content-Range header is missing or malformed

我尝试在不上传切片的情况下提交空文件:根据https://docs.microsoft.com/de-de/graph/api/driveitem-createuploadsession?view=graph-rest-1.0#completing-a-file(我已为上传会话明确设置deferCommit=true

在文件的最终字节范围 PUT 到上传 URL 后,向上传 URL 发送最终的 POST 请求,内容长度为零(目前仅支持 OneDrive for Business 和 SharePoint)。

uploadedFile = await client.api(requestUrl)
    .headers({
        "Content-Length": `0`,
    })
    .post(null);

不走运,这是响应:SharePoint / Graph 预计缺少未知长度的字节,我认为:

{
    "@odata.context":"...",
    "expirationDateTime":"2020-11-10T16:04:31.594Z",
    "nextExpectedRanges":["0-"],
    "uploadUrl":"..."
}

文件不存在。

我找不到任何有关如何使用 Microsoft Graph 处理空文件的文档。我考虑过创建一个空文件,比如在线使用touch,而不是上传它,但我也找不到这样做的方法。

也许这是一个不受支持的场景?

【问题讨论】:

  • 这里听起来像是一个不受支持的场景;即使我从 Sharepoint 在线尝试,情况也是如此 - 所以我不会在这里责怪 Microsoft Graph API。顺便说一句,为什么要在线将 0 字节推送到共享点?这背后有什么商业案例吗?
  • 嗯。似乎是这样.. 我们需要单向同步包含 0 字节文件的文件夹作为一种标记(就像 .gitkeep 文件一样)有趣的想法:您可以通过 OneDrive Windows 客户端将 0 字节文件添加到 SharePoint Online图书馆没有问题。
  • 有趣的问题。如果您仍然认为此功能增加了更多价值并由 Microsoft 实施,请考虑将其提交到 Microsoft uservoice (microsoftgraph.uservoice.com/forums/…) - 这样他们就可以考虑了。让我们知道进展如何。

标签: typescript microsoft-graph-api microsoft-graph-files


【解决方案1】:
  • 这听起来像是一个不受支持的场景;即使我从 SharePoint 在线尝试,情况也是如此 - 所以我不会在这里责怪 Microsoft Graph API。如果您仍然认为此功能增加了更多价值并由 Microsoft 实施,请考虑将其提交到 Microsoft user voice,以便他们考虑!!

【讨论】:

    猜你喜欢
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-21
    • 1970-01-01
    • 1970-01-01
    • 2016-09-28
    相关资源
    最近更新 更多