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

Microsoft Graph API v1 chatMessageHostedContent contentBytes大小限制及上传咨询

关于Microsoft Graph API v1中chatMessageHostedContent的大小限制与大文件上传方法

一、contentBytes的大小限制

  • 直接通过SendMessage API附带的托管内容(contentBytes)存在3MB左右的上传上限,这是该同步API的HTTP请求payload大小约束导致的,和你当前遇到的上传限制一致。
  • 下载时的8MB限制是单次请求的默认响应大小限制,可通过分块下载突破:使用Range请求头分段获取内容,例如Range: bytes=0-1048575(每次请求1MB),循环执行直到获取完整文件。
  • 评论中提到的"GB级contentBytes",实际指的是通过大文件上传流程存储的托管内容,这类内容的contentBytes字段不会直接返回完整字节,而是需要通过分块下载获取,其实际存储大小可达到GB级别,并非API响应会直接返回GB级的字节数据。

二、GB级托管内容的上传方法

要上传超过3MB的托管内容,需使用Microsoft Graph的大文件上传会话流程,步骤如下:

  1. 创建上传会话
    发送POST请求创建上传会话,指定文件元数据:

    POST https://graph.microsoft.com/v1.0/chats/{chatId}/messages/{messageId}/hostedContents/createUploadSession
    Content-Type: application/json
    
    {
      "item": {
        "@odata.type": "#microsoft.graph.chatMessageHostedContent",
        "contentType": "application/pdf",
        "contentBytes": ""
      }
    }
    

    响应会返回包含uploadUrl和nextExpectedRanges的会话对象。

  2. 分块上传文件
    使用返回的uploadUrl,通过PUT请求分块上传内容,块大小建议为5MB-10MB(需为256KB的整数倍),请求头指定Content-Range标识当前块的范围:

    PUT {uploadUrl}
    Content-Type: application/octet-stream
    Content-Range: bytes 0-5242879/10485760
    
    [当前文件块的二进制内容]
    

    每次上传后,响应会返回nextExpectedRanges,指示下一个待上传的块范围,重复此步骤直到所有块上传完成。

  3. 关联托管内容到消息
    上传完成后,发送消息时通过hostedContents字段引用已上传的托管内容ID:

    POST https://graph.microsoft.com/v1.0/chats/{chatId}/messages
    Content-Type: application/json
    
    {
      "body": {
        "content": "<attachment id='{hostedContentId}'></attachment>"
      },
      "hostedContents": [
        {
          "id": "{hostedContentId}",
          "contentType": "application/pdf",
          "contentBytes": ""
        }
      ]
    }
    

补充说明

  • 目前Teams聊天消息托管内容的大文件上传最大支持1GB,超过该大小的文件无法通过此方式上传。
  • 分块下载大文件时,同样使用Range请求头配合GET /chats/{chatId}/messages/{messageId}/hostedContents/{hostedContentId}/$value接口即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 20:30:57