Skip to content

CDN 文件

媒体上传下载、大文件。

本模块接口全部 POST,请求地址 = {BASE_URL} + 路径。

接口用途安全级别
上传图片到 CDN
/wx-api/api/cdn/uploadImage
把本地图片(base64)上传到腾讯 CDN,拿到发图/下载所需的媒体凭证。写操作
上传视频到 CDN
/wx-api/api/cdn/uploadVideo
上传小视频(base64)+ 封面图,拿到 message/sendVideo 所需凭证。写操作
上传文件到 CDN
/wx-api/api/cdn/uploadFile
上传任意文件(base64),用于 message/sendFile;语音消息则先传 .silk 文件再走 sendVoice写操作
CDN 下载
/wx-api/api/cdn/download
凭「文件凭证」把 CDN 上的媒体解密取回本地(base64),用于下载收到的消息附件(图/视频/文件),或校验自己刚上传的媒体。只读
上传大文件到 CDN
/wx-api/api/cdn/uploadBigFile
上传超出 base64 直传能力的大文件(视频/大附件)。写操作
下载大文件
/wx-api/api/cdn/downloadBigFile
下载由 uploadBigFile 或大文件消息产生的大文件。只读
获取大文件下载 URL
/wx-api/api/cdn/getBigFileDownloadUrl
不经 Eyun 服务器中转文件内容,而是拿一个可直接下载的 URL(适合大文件、交给浏览器/客户端自行下)。只读

安全级别与「实测 日期」标记的含义见接口总览的图例

上传拿凭证 → 发送 / 下载复用凭证

企微协议里,一切媒体(图/视频/文件/语音)不能直接把字节塞进消息,而是走「先上传拿到一组凭证,再把凭证传给发送或下载接口」的两段式:

  1. 本地文件(base64)调 cdn/uploadImage/cdn/uploadVideo/cdn/uploadFile(base64 直传),拿到媒体凭证;返回字段名以各上传接口的响应示例为准。
  2. 发送:图片上传返回的 data.id 等字段可原样传给发送图片消息content;视频上传返回的 data 同样原样传给发送视频消息,封面是单个 thumbUrl。文件上传返回的 fileId / fileMd5 / fileSize,用于发送文件消息发送语音消息时,必须分别改名为 id / md5 / size
  3. 下载:调 cdn/download{fileId=id, fileType, aesKey}),返回 {base64, serverAddr}

凭证字段的含义:

字段含义谁用
idCDN 文件业务标识——这条媒体在 CDN 上的定位主键;上传文件接口返回为 fileId发送 content.id;下载 fileId
aesKeyAES 下载解密密钥——CDN 存的是加密字节,没有它下不出明文下载 download 必传;发送 content.aesKey
md5文件 MD5,完整性校验(下载后可比对)发送 content.md5;自校验
size文件字节数发送 content.size;进度/校验
width/height/duration/thumb*图片/视频的宽高、时长、缩略图信息,发送时供对端预渲染发送 content 对应字段

download 的 fileType 变体

下载时用 fileType 选取要拿哪种画质/变体:

fileType变体
1原图
2压缩图
3封面图
4视频
5文件

图片(contentType14 / 101)用 2;收到的消息带原图时可以试 1。封面用 3,视频(23 / 103)用 4,文件(15 / 20)和语音(16)用 5。自己上传的图片存的是压缩图,下载要用 2

下载放进队列,同一条消息只下载一次,失败先核对 fileType 再重试。