如何通过MS Graph Rest API将文件上传至SharePoint文档集
创建文档集同时上传关联文件的实现方案
你可以通过MS Graph的$batch批处理能力,将「创建文档集」和「上传文件」两个操作合并为单次请求实现关联操作,具体实现逻辑如下:
- 调用POST方法请求
https://graph.microsoft.com/v1.0/$batch终结点,请求体的requests数组按顺序定义两个操作:- 第一个操作为创建自定义文档集:直接调用对应列表的item创建接口,指定内容类型为你的自定义文档集的内容类型ID,操作分配独立的请求ID,比如
1 - 第二个操作为上传订单关联文件:设置
dependsOn: ["1"]绑定第一个操作,自动等待文档集创建完成后,读取第一个操作返回的文档集对应的DriveItem路径,直接调用文件上传接口将文件写入该路径
- 第一个操作为创建自定义文档集:直接调用对应列表的item创建接口,指定内容类型为你的自定义文档集的内容类型ID,操作分配独立的请求ID,比如
- 如果是小于4MB的小文件,直接在第二个操作中用PUT请求
drives/{drive-id}/items/{document-set-id}:/{filename}:/content上传即可;大于4MB的大文件可以先在批处理中请求创建上传会话,后续再分片上传。
SharePoint存储逻辑说明
针对你咨询的List ID相关规则,明确如下:
- Drive和SharePoint文档库是一一对应的,每个Drive ID对应唯一的文档库List ID
- 同一文档库下的所有内容,包括所有文档集、文档集内的所有文件、普通文件夹、普通文件,全部共用同一个List ID,也就是该文档库本身的List ID
- 文档集本质是文档库下的特殊ListItem类型,它本身有独立的ListItem ID,其下存储的文件也有各自的ListItem ID,但这些ListItem的父级List ID始终是所属文档库的List ID,不会随存储位置变化。
内容的提问来源于stack exchange,提问作者Stijn
相关产品推荐
相关产品推荐

