【发布时间】:2018-04-21 02:01:14
【问题描述】:
我正在使用 node.js 将文件上传到我的 Heroku 服务器。一切正常,但是当 Heroku 服务器重新启动或关闭时,所有上传的文件都消失了,URL 命中返回“未找到”。
【问题讨论】:
我正在使用 node.js 将文件上传到我的 Heroku 服务器。一切正常,但是当 Heroku 服务器重新启动或关闭时,所有上传的文件都消失了,URL 命中返回“未找到”。
【问题讨论】:
几个月前经历过。您需要将图像托管在其他地方,因为 Heroku 不支持在其中存储文件。最终使用 Cloudinary 存储文件,然后获得了 VPS 服务器。
【讨论】:
用户上传的媒体文件和其他用户内容不应存储在 Heroku 上。 Heroku 是为运行应用程序代码而构建的,它只关心存储库中的应用程序文件。
Heroku 在每次部署时都会丢弃您以前的环境,并根据您的代码存储库启动一个新环境。
所以只有应用程序代码应该保留在那里,其他事情应该委托给其他服务,在这种情况下,对于文件存储,您应该使用类似 S3 或类似的东西。
【讨论】:
Heroku 有一个叫做 Ephemeral filesystem 的东西。
来自文档:
每个 dyno 都有自己的临时文件系统,带有一个新的副本 最近部署的代码。在测功机的生命周期中,它的运行 进程可以将文件系统用作临时暂存器,但不能 写入的文件对任何其他测功机中的进程可见,并且 任何写入的文件都将在测功机停止或 重新启动。
【讨论】: