下载页只有一个按钮,点下去才发现文件 2.1GB,手机流量用户下到一半取消,客服每天收到怎么这么大的询问。日志里能对上时间点,这种反而好排。
模板只输出了文件名和按钮,没读文件大小。文件存在对象存储上,大小信息要单独请求一次才拿得到。这一点先确认清楚,后面就不用反复试。
$size = filesize( $path ); echo size_format( $size, 1 ); // 2.1 GB
「文件大小显示」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。
日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。权限不要一口气开到最大,先加到够用再往上试,范围小才好收。
处理上按这个顺序:发布时把文件大小写进元数据,页面直接渲染;格式化成 MB 或 GB,保留一位小数;打开三个不同大小的下载页,确认显示值与实际文件一致。
结果对不对很好判断,下载页显示文件大小 2.1GB,与服务器上的实际大小一致。
