我正在寻找最好的方法来检查一个文件是否已被用户使用OneDrive SDK签出。这只是Graph API上的一个层。如果文件被签出,我希望在我的应用程序中阻止下载。
我正在使用这个
获取文件夹的内容var results = await graphClient.Drives[driveId].Items[folderId].Children.Request().GetAsync();
然而,在这个响应中似乎没有任何属性,如果项目被检查出来?
从我的测试中,我可以尝试签出文件,如果文件已经签出,则处理返回的异常,但出于明显的性能原因,这不是我想要对多个项目做的事情。
await graphClient.Drives[driveId].Items[documentId].Checkout().Request().PostAsync();
有没有人知道一个更有效的方法来确定文件是否被检出?
需要读取publicationFacet
类型的publication
属性。driveItem
资源的发布状态详细信息。
publicationFacet
类型具有属性level
,它描述了本文档的发布状态。published
或checkout
.
publication
属性默认不返回,必须在Select
方法中指定。
var results = await graphClient.Drives[driveId].Items[folderId].Children
.Request()
.Select("id,...,publication")
.GetAsync();
文档publicationFacet