先说结论
早先那套「文件流量绝不能回源」的判断,现在不成立了。云端带宽瓶颈已经不存在,回源链路上的回流问题也解决了,所以文件重新走回源、直接存在家里的硬盘上,不再依赖对象存储。
下面把当初的推理和现在的反转都记下来,免得以后自己看到旧文一头雾水。
当初为什么绕开回源
原方案的前提是两个硬约束:
- 云端轻量服务器公网带宽只有 4M,是全站天花板,比其它环节低一到两个数量级;
- 一次回源要在那条链路上过两遍(家里 → 云端 → 访客),4M 实际只剩 250KB/s,一个人下文件整站就卡。
所以文件走了预签名 URL 让浏览器直连对象存储,云端只签发签名,把 4M 全程留给博客页面。
现在为什么改回来
前提变了:
- 带宽瓶颈不存在了。云端入口的带宽已不再是约束,回源链路的吞吐足够文件流量通过;
- 回流问题已解决。回源不再需要在窄链路上往返两遍,取文件的路径已经理顺。
既然约束消失,绕道对象存储的成本(预签名时效与重试、直传进度/分片/断点续传、存储费与流量费)就变成纯负担。文件直接存在家里硬盘、跟着其它请求一起走回源取,反而更简单、更省心,也更符合「数据完全自主」的初衷。
代价转移
之前是「先把瓶颈绕开,再去优化细节」;现在是「瓶颈没了,直连即可」。代价从前端工程量和对象存储费用,转移成了家里硬盘的存储与备份责任——这部分本来也要做,并不新增负担。