0

当对共享的文件进行可恢复上传时,无法使用从 createUploadSession 返回的 url。

使用 /content 直接上传有效,但有 4MB 的限制

方案UserA共享具有编辑权限的文件以UserB 使用 ms graph javascript sdk

const { uploadUrl } = await this.client.api(`/drives/${driveId}/items/${id}/createUploadSession`).post({});

尝试uploadUrl在 404 中使用结果{"error":{"code":"itemNotFound","message":"The resource could not be found."}}

有趣的是,uploadUrl看起来像这样 https://{tenant}-my.sharepoint.com/personal/{UserA}_{tenant}_com/_api/v2.0/drives/${driveId}/items/${id}/uploadSession?guid='5b85df9e-b524-4000-9883-8106a13e592f'...

不确定它是否与嵌入在 url 中的 UserA 有关。

如果UserA访问相同的文件并进行类似的上传,则该文件一切正常。

以下所有请求都适用于任一用户:

await this.client.api(`/drives/${driveId}/items/${id}/checkout`).post({});
await this.client.api(`/drives/${driveId}/items/${id}/content`).putStream(fs.createReadStream(filePath));
await this.client.api(`/drives/${driveId}/items/${id}/checkin`).post({});

uploadUrl从 createUploadSession 返回的应该对有权创建上传会话的任何用户有效。

4

1 回答 1

0

您无法上传/替换从其他用户的 OneDrive 共享的文件。创建上传会话会在 Drive 中创建一个临时文件,用于写入每个块。由于用户 B 没有对用户 A 的 OneDrive 的读/写访问权限,因此他们无法创建该临时文件(因此404 - Not Found.

于 2019-11-08T21:44:50.200 回答