当对共享的文件进行可恢复上传时,无法使用从 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 返回的应该对有权创建上传会话的任何用户有效。