知识卡片

无状态倒逼文件上传方案改变

专业/工作 · 334

内容

传统Web框架里”接收上传文件直接存本地”的写法在FaaS下行不通,原因有三层叠加:API网关常把二进制 文件转成字符串,不便直接处理;网关与函数之间传递的数据包通常有大小上限(很多平台限制在6MB内); FaaS实例本身无状态,即使临时存了文件,实例释放后也会丢失。这三条约束逼出了两种应对方案——小文件 走Base64编码经函数中转再持久化到对象存储;大文件则让函数只负责生成一个带签名的临时上传地址, 客户端直接把文件传到对象存储,绕开网关和函数的大小限制。发散:这是一个典型案例,说明基础设施层 的物理约束(大小限制、无状态)会直接决定上层该选哪种设计模式,而不是先选好模式再迁就约束。

参考来源

《Serverless工程实践:从入门到进阶》第4章《Serverless应用开发、调试与优化》