You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Microsoft Graph SDK for C# v5.x创建SharePoint文件上传会话?

在Microsoft Graph SDK v5.x中创建SharePoint大文件上传会话

核心实现代码

Graph SDK v5.x对API结构做了调整,移除了v4.x中.Request()和.PostAsync()的链式调用模式,改用强类型请求体+直接调用PostAsync的方式实现。以下是对应原v4.x逻辑的v5.x代码:

using Microsoft.Graph;
using Microsoft.Graph.Drives.Item.Items.Item.CreateUploadSession;

// 可选:构造请求体自定义会话配置,比如设置文件冲突处理规则
var requestBody = new DriveItemCreateUploadSessionPostRequestBody
{
    Item = new DriveItemUploadableProperties
    {
        AdditionalData = new Dictionary<string, object>
        {
            { "@microsoft.graph.conflictBehavior", "replace" }
        }
    }
};

// 创建上传会话
var session = await graphClient.Sites[graphSiteId]
    .Lists[listId]
    .Items[itemId]
    .DriveItem
    .CreateUploadSession
    .PostAsync(requestBody);

// 用获取到的session初始化LargeFileUploadTask,对接你已有的上传逻辑
// var uploadTask = new LargeFileUploadTask<DriveItem>(graphClient, session, fileStream, fileSize);

关键变化说明

  • 采用强类型请求体DriveItemCreateUploadSessionPostRequestBody替代v4.x的参数拼接方式,类型更安全
  • 调用路径简化为.CreateUploadSession.PostAsync(...),无需额外的.Request()环节
  • 若无需自定义会话配置,可直接传入null作为请求体参数:
    var session = await graphClient.Sites[graphSiteId]
        .Lists[listId]
        .Items[itemId]
        .DriveItem
        .CreateUploadSession
        .PostAsync(null);
    

后续对接

获取到的session(类型为UploadSession)可直接用于初始化LargeFileUploadTask,和你已实现的上传代码完全兼容。

内容的提问来源于stack exchange,提问作者23W

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 18:32:39