匿名上传到OneDrive上的公共共享文件夹

时间:2018-09-05 13:36:53

标签: microsoft-graph onedrive

匿名上传到OneDrive上的公共共享文件夹的REST API调用是什么?

我尝试通过OneDrive Web UI共享一个文件夹,并创建一个链接为:“具有此链接的任何人都可以编辑此项目”,并使用REST API:

POST https://graph.microsoft.com/v1.0/drives/{driveId}/items/{sharedFolderId}/createLink
Content-type: application/json
{
    "type": "edit",
    "scope": "anonymous"
}

在两种情况下,我都无需登录即可读取共享文件夹

GET https://api.onedrive.com/v1.0/shares/{shareId}/items/{sharedFolderId}

我也可以使用

读取权限本身
GET https://api.onedrive.com/v1.0/shares/{shareId}/items/{sharedFolderId}/permissions

=>

{
    "@odata.context":"https://api.onedrive.com/v1.0/$metadata#shares('{shareId}')/items('{sharedFolderId')/permissions",
    "value":
    [
        {
            "id":"{permissionId}",
            "link":
            {
                "application":
                {
                    "displayName":"{my own app}",
                    "id":"{short app id}"
                },
                "type":"edit",
                "webUrl":"https://1drv.ms/u/{shareId}"
            },
            "roles":["write"],
            "shareId":"{shareId}",
            "expirationDateTime":"0001-01-01T00:00:00Z",
            "hasPassword":false
        }
    ]
}

但是尝试上传文件或创建子文件夹,即

PUT https://api.onedrive.com/v1.0/shares/{shareId}/driveItem:/{filename}:/content
Content-type: text/plain
some text goes here

POST https://api.onedrive.com/v1.0/shares/{shareId}/items/{sharedFolderId}/children
Content-type: application/json
{
    "name": "TestFolder",
    "folder": { }
}

两者都因未授权的呼叫而失败-但是,“具有匿名链接”范围的“编辑”链接是否不是“具有此链接的任何人都可以编辑此项目”的全部要点?

我尝试了https://graph.microsoft.com/v1.0代替https://api.onedrive.com/v1.0/drives/{driveId}代替/shares/{shareId}以及/shares/{shareToken}的各种组合,其中shareToken是权限中的webUrllink的“ u!”编码。

到目前为止,还没有找到正确的REST API调用。我希望有人能够提供帮助:-)

您可以下载我的TestOneDrive Visual Studio测试项目来重现问题。它还包含用于创建和共享文件夹的初始化代码。

1 个答案:

答案 0 :(得分:0)

由于此后没有产品小组的成员,也没有正式的文档宣布,因此,建议您首先在UserVocie上提交功能请求,或对与您的问题接近的现有功能进行投票。