使用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的测试版?
答案 0 :(得分:1)
根据documentation,这应该在请求正文中指定,而不是作为查询参数:
{
"item": {
"@microsoft.graph.conflictBehavior": "fail"
}
}
这也仅在Resumable Upload"直接上载的请求主体是文件本身。通常,指导是尽可能使用可恢复的上传。直接上传仅限于小于4MB的文件,这使其不适合大多数情况。
还值得注意的是,您引用的文档适用于独立的OneDrive API。虽然这与非常类似于Graph的实现,但它们并不完全可以互换。 Microsoft Graph documentation是图表信息的唯一权威来源。