Appearance
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(适合大文件、交给浏览器/客户端自行下)。 | 只读 |
安全级别与「实测 日期」标记的含义见接口总览的图例。
上传拿凭证 → 发送 / 下载复用凭证
企微协议里,一切媒体(图/视频/文件/语音)不能直接把字节塞进消息,而是走「先上传拿到一组凭证,再把凭证传给发送或下载接口」的两段式:
- 本地文件(base64)调
cdn/uploadImage/cdn/uploadVideo/cdn/uploadFile(base64 直传),拿到媒体凭证;返回字段名以各上传接口的响应示例为准。 - 发送:图片上传返回的
data.id等字段可原样传给发送图片消息的content;视频上传返回的data同样原样传给发送视频消息,封面是单个thumbUrl。文件上传返回的fileId/fileMd5/fileSize,用于发送文件消息或发送语音消息时,必须分别改名为id/md5/size。 - 下载:调
cdn/download({fileId=id, fileType, aesKey}),返回{base64, serverAddr}。
凭证字段的含义:
| 字段 | 含义 | 谁用 |
|---|---|---|
id | CDN 文件业务标识——这条媒体在 CDN 上的定位主键;上传文件接口返回为 fileId | 发送 content.id;下载 fileId |
aesKey | AES 下载解密密钥——CDN 存的是加密字节,没有它下不出明文 | 下载 download 必传;发送 content.aesKey |
md5 | 文件 MD5,完整性校验(下载后可比对) | 发送 content.md5;自校验 |
size | 文件字节数 | 发送 content.size;进度/校验 |
width/height/duration/thumb* | 图片/视频的宽高、时长、缩略图信息,发送时供对端预渲染 | 发送 content 对应字段 |
- 小文件(图/小视频/普通文件/语音)→
uploadImage/uploadVideo/uploadFile,body 直接带 base64,同步返回凭证。 - 单次请求体最大 8MB,超过时用上传大文件到 CDN,传入文件 URL。
- 大文件 →
uploadBigFile(异步:请求后立刻返回requestId/fileMd5/fileSize/status:"uploading",真正上传完成后,最终凭证{id,aesKey,md5,size,url}经 Webhook 事件下发,报文见回调字典 · 大文件上传完成);下载走downloadBigFile或先getBigFileDownloadUrl拿直链。
download 的 fileType 变体
下载时用 fileType 选取要拿哪种画质/变体:
| fileType | 变体 |
|---|---|
1 | 原图 |
2 | 压缩图 |
3 | 封面图 |
4 | 视频 |
5 | 文件 |
图片(contentType 为 14 / 101)用 2;收到的消息带原图时可以试 1。封面用 3,视频(23 / 103)用 4,文件(15 / 20)和语音(16)用 5。自己上传的图片存的是压缩图,下载要用 2。
下载放进队列,同一条消息只下载一次,失败先核对 fileType 再重试。