Appearance
CDN 文件
上传图片、视频、文件拿凭证,下载收到的文件,大文件收发。
本模块接口全部 POST。{BASE_URL} 是含 /wx-api 的完整 API Base;直接复制接口页的请求示例。
| 接口 | 用途 | 安全级别 |
|---|---|---|
上传图片/wx-api/api/cdn/uploadImage | 发图片消息前先用它上传图片(base64),拿到图片凭证;sendMiniProgram 的封面图也用它上传。 | 写操作 |
上传视频/wx-api/api/cdn/uploadVideo | 发视频消息前先用它上传视频和封面图(base64),返回的 data 原样填进 message/sendVideo 的 content。 | 写操作 |
上传文件/wx-api/api/cdn/uploadFile | 发文件或语音消息前先用它上传文件(base64),语音传 .silk 文件;填进 message/sendFile 或 sendVoice 时,fileId、fileMd5、fileSize 要改名为 id、md5、size。 | 写操作 |
上传大文件/wx-api/api/cdn/uploadBigFile | base64 后超过 8MB 的文件,以及朋友圈的图片和视频,都用它上传:传文件的公网 URL,异步完成,凭证经推送下发。 | 写操作 |
下载媒体文件/wx-api/api/cdn/download | 下载收到的图片、视频、文件和语音:凭 fileId、fileType、aesKey 取回解密后的文件(base64)。 | 只读 |
按链接下载个微文件/wx-api/api/cdn/urlDownload | 个微(微信)侧的媒体只给了下载链接时,凭 url 与 aesKey 取回文件;有 fileId 的附件用 cdn/download。 | 只读 |
下载大文件/wx-api/api/cdn/downloadBigFile | 下载大文件(id 以 *1* 开头),来源是大文件消息或 uploadBigFile。 | 只读 |
获取大文件下载链接/wx-api/api/cdn/getBigFileDownloadUrl | 拿大文件的直接下载链接,交给浏览器或客户端自己下载,文件内容不经 Eyun 中转。 | 只读 |
安全级别与「实测 日期」标记的含义见API 参考的表格说明。
两步走:先上传拿凭证,再发送
图片、视频、文件、语音都不能直接放进消息。要先上传,拿到一组凭证(id、aesKey、md5、size 等),发送时把凭证填进消息的 content。收到的图片、视频、文件也带着同样的凭证,下载时凭它取回。
id:文件在 CDN 上的标识。aesKey:解密密钥。CDN 上存的是加密文件,下载时必须带上。md5、size:用来校验文件是否完整。
发送时凭证怎么填
| 要发的 | 先调 | 发送时 content 怎么填 |
|---|---|---|
| 图片 | 上传图片 | 返回的 data 原样填,见发送图片消息 |
| 视频 | 上传视频 | 返回的 data 原样填,封面就是其中的 thumbUrl,见发送视频消息 |
| 文件 | 上传文件 | fileId、fileMd5、fileSize 改名为 id、md5、size,再填文件名 name,见发送文件消息 |
| 语音 | 上传文件,传 .silk 文件 | 和文件一样改名,再填语音秒数 voiceTime,见发送语音消息 |
| 超过 8MB 的文件 | 上传大文件 | 用推送里下发的 id、aesKey、md5、size、url,见发送大文件 |
单次请求体最大 8MB(按 base64 编码后计算),超过就改用上传大文件。它传的是文件的公网 URL,调用后立即返回 requestId、fileMd5、fileSize,status 为 uploading;上传完成后凭证通过推送下发,报文见回调字典 · 大文件上传完成。
下载怎么选 fileType
调下载媒体文件时,用 fileType 指定要下载哪一种:
| 要下载的 | 回调里的 contentType | fileType |
|---|---|---|
| 收到的图片 | 14、101 | 2;消息带原图时可以试 1 |
| 自己上传的图片 | — | 2(存的是压缩图) |
| 视频 | 23、103 | 4 |
| 图片或视频的封面 | — | 3 |
| 文件、语音 | 15、20、16 | 5 |