如何将文件上传到其他用户 OneDrive 中的文件夹

问题描述 投票:0回答:1

操作系统:Win11
图 API:版本 5
Graph API 权限:Users.Read、Files.ReadWrite

不会引发任何错误。我已经打开了图形 api 调用的日志记录,也没有发现任何错误。

该通话对我来说效果很好,但我是 OneDrive 中子文件夹的所有者。

我什至更新了子文件夹的访问权限,以便至少一个用户有权编辑该文件夹中的项目。

几年前推荐了与此类似的帖子Files.ReadWrite.All

有人可以证实这一点吗?我没有足够的访问权限级别向公司中的每个人授予这些权限,更不用说一个人了。我想确定地联系我们的安全小组,而不仅仅是另一个善意的猜测。

private async static Task UploadFile(string filePath)
{

    string oneDriveRootId = "-- drive id of root OneDrive folder --";
    string itemId = "-- ID OF SUBFOLDER --"; 


    try
    {
        byte[] data = System.IO.File.ReadAllBytes(filePath);

        using (Stream stream = new MemoryStream(data))
        {
            var graphClient = GraphAuthentication.GetGraphServiceClient(loggedOnUserEmail);

                     

            var item = await graphClient.Drives[oneDriveRootId]
            .Items[itemId]
            .ItemWithPath(filePath)
            .Content
            .PutAsync(stream);
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine("  Error uploading {0}\n\n{1}", filePath, ex);            
    }    
}
microsoft-graph-api onedrive microsoft-graph-files
1个回答
0
投票

是的,您需要

Files.ReadWrite.All
才能对不属于您自己的驱动器进行调用。
Files.ReadWrite
范围仅向调用者驱动器授予调用应用程序权限。

© www.soinside.com 2019 - 2024. All rights reserved.