照片或语音显示不出来
会话里的图片、文档或语音为什么显示成"不可用",哪些情况还能救,哪些是永久丢了。
顾客发来一张照片,会话里显示的是一个占位符。成因有四种,其中两种无法挽回——所以判断清楚自己是哪一种很重要。
先说一件事:WhatsApp 会删媒体,而且不慢
WhatsApp 在消息发出后大约保留文件 30 天。文件背后的那个链接几分钟就过期,而且还需要账号自己的令牌。这就是为什么一个平台必须在消息到达的当时就把字节拉下来存自己的一份——也是为什么两个月后才发现的缺口是永久的缺口。
Juno 在消息投递时下载入站媒体并私有存储,再通过短时效的签名链接送到控制台。
四种情况
| 你看到的 | 成因 | 能救吗 |
|---|---|---|
| 最近的消息上显示不可用 | 它到达时存储还没配好 | 只在约 30 天内 |
| 导入的历史上显示不可用 | 它只在店主手机上存在过 | 不能 |
| 某一个大文件显示不可用 | 超过了大小上限 | 不能——请对方发小一点的 |
| 到处都渲染不出来 | 是配置问题,不是媒体问题 | 能 |
存储没配好
在存储桶配好之前到达的媒体只留下一个 provider id。在 Meta 的约 30 天窗口之内还能补拉;过了之后,这个文件对所有人都不存在了,包括 Meta。
这就是为什么"配置媒体存储"在第一个号码接入之前的清单上,而不是之后。
它来自导入的历史
一个共存号码接入时,WhatsApp 会回放店主过去的会话。其中一部分消息带着真实的媒体 id,文件能正常拉取。另一部分到达时是一个完全没有 id 的占位符——那些文件只在手机上存在过,任何平台都取不回来。它们会显示成一条"文件不可用"的说明,而不是一张破图。见共存。
它太大了
拉取的文件有大小上限(默认 25 MB)。WhatsApp 能接受的文件比这大得多,而一段假期视频整个装在 worker 的内存里就是所有人的一次故障——所以这个上限是刻意设的,不是能力不足。消息会保留,文件被标记为不可用。
什么都渲染不出来
如果每个会话里的每张图都没有,那就不是媒体链路的问题:
- 签名链接可能过期了——刷新页面。
- 内容拦截插件或公司代理可能在拦图片请求。
- 报障之前先用无痕窗口开一个会话看看。
是发不出去,不是收不到
如果是你自己的附件发不出去,那是另一条路径:文件先上传到 WhatsApp,只有上传成功之后消息才会被创建,所以上传失败根本不会留下消息。对照 Juno 强制执行的分类上限检查文件大小——图片 5 MB、视频/音频 16 MB、文档 20 MB——拒绝信息里会点名是哪一个。它们等于或低于 WhatsApp 自己的限制,所以在这里过得了的文件在那边也过得了。