You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

带Express API的Node.js项目实时服务器部署及文件存储问题咨询

首先说明你之前在Serverless环境报错的核心原因:
Firebase Functions、Netlify Functions这类Serverless运行环境是临时无状态的,函数执行完成后实例就会被销毁,默认仅开放/tmp目录的临时写入权限,写入的文件不仅会随实例销毁丢失,临时目录的存储空间通常也只有512MB上限,所以你直接写自定义文件夹必然会触发权限错误,就算临时写入/tmp也无法持久化留存文件。

可选部署方案

方案1:保留Serverless架构(成本最低)

如果不想额外运维服务器,只需要修改文件存储逻辑即可,是目前Serverless场景的标准实践:

  • 放弃本地文件夹写入逻辑,用户上传的文件通过SDK直接转存到对象存储服务,将文件的访问地址存入数据库即可,不需要占用本地存储资源
  • 如果需要对上传文件做临时裁剪、转码等处理,可先写入/tmp目录处理完成后立刻转存到对象存储,不要依赖临时目录做持久化存储

方案2:改用长期运行的云服务器(满足本地文件夹写入需求)

如果业务逻辑确实需要将文件持久化保存在服务器本地文件夹,就需要选择带持久化磁盘的云服务器产品:

DigitalOcean Droplet是否适用?

完全适用。Droplet是标准的IaaS层云服务器,你可以自主选择配置、挂载额外的持久化存储卷,部署好Node.js运行环境、配置好目录读写权限后,express-fileupload可以直接写入你指定的任意文件夹,文件会持久化留存,不会随服务重启丢失。

Droplet是否是最优选择?

需要结合你的实际场景判断:

  • 如果你的服务用户主要分布在海外,Droplet是性价比很高的选择,最低配实例每月仅需5美元,足够支撑中小流量的Node.js项目,官方提供了一键部署Node.js环境的镜像,上手门槛很低
  • 如果你的服务用户主要在国内,优先选择国内云厂商的云服务器产品,网络延迟会更低
  • 如果你不想自己配置服务器环境、防火墙、反向代理等运维操作,也可以选择DigitalOcean App Platform这类托管式应用服务,支持挂载持久化存储卷,同样支持本地文件夹写入,运维成本更低

同类可选产品

  • 国内阿里云ECS、腾讯云CVM
  • 海外AWS EC2、GCP Compute Engine
注意事项
  • 如果你选择用云服务器本地存储用户上传文件,一定要定期做磁盘快照备份,避免磁盘故障导致文件丢失
  • 大体积的用户上传文件仍然建议优先存在对象存储服务中,仅将小体积的动态生成文件存在服务器本地,兼顾成本和可靠性

内容的提问来源于stack exchange,提问作者Saqib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 04:15:04