Skip to content

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:用来校验文件是否完整。

发朋友圈的图片、视频要用上传大文件

朋友圈的图片和视频必须先调上传大文件,拿到以 *1* 开头的 fileId 再发。用上传图片或上传视频拿到的凭证会被发成纯文本,接口照样返回成功。

发送时凭证怎么填 ​

要发的先调发送时 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 指定要下载哪一种:

要下载的回调里的 contentTypefileType
收到的图片14、1012;消息带原图时可以试 1
自己上传的图片—2(存的是压缩图)
视频23、1034
图片或视频的封面—3
文件、语音15、20、165