当项目已存在时,如何使OneDrive失败?

时间:2017-06-11 18:02:14

标签: microsoft-graph onedrive

使用Microsoft Graph Explorer,我可以使用http PUT创建OneDrive项目。 例如,下面的uri在我的根目录下创建了一个testfile.txt:

https://graph.microsoft.com/v1.0/me/drive/root:/testfile.txt:/content

现在,我希望PUT失败,如果该文件已经存在,并且OneDrive项目的一般文档https://dev.onedrive.com/items/upload_put.htm#optional-query-string-parameters说明了如何指定冲突行为 - 如果我正确读取它,例如:

https://graph.microsoft.com/v1.0/me/drive/root:/testfile.txt:/content?@microsoft.graph.conflictBehavior=fail

但是,PUT仍然成功覆盖现有的'testfile.txt'。

任何人都可以帮我写一个PUT查询,以便在项目已经存在时失败吗? 这甚至是OneDrive支持的吗? 我是否需要转到Microsoft Graph的测试版?

1 个答案:

答案 0 :(得分:1)

根据documentation,这应该在请求正文中指定,而不是作为查询参数:

{
    "item": {
        "@microsoft.graph.conflictBehavior": "fail"
    }
}

这也仅在Resumable Upload"直接上载的请求主体是文件本身。通常,指导是尽可能使用可恢复的上传。直接上传仅限于小于4MB的文件,这使其不适合大多数情况。

还值得注意的是,您引用的文档适用于独立的OneDrive API。虽然这与非常类似于Graph的实现,但它们并不完全可以互换。 Microsoft Graph documentation是图表信息的唯一权威来源。