OneDrive SDK (Graph API)判断文件是否已检出



我正在寻找最好的方法来检查一个文件是否已被用户使用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,它描述了本文档的发布状态。publishedcheckout.

publication属性默认不返回,必须在Select方法中指定。

var results = await graphClient.Drives[driveId].Items[folderId].Children
.Request()
.Select("id,...,publication")
.GetAsync();

文档publicationFacet

最新更新