我有一个用NuxtJS制作的PWA正确部署并在Heroku上工作。
我想实现一个文件上传器和管理器,以便可以通过一些API从前端管理目录(~/static/files)
中的某些文件。
在localhost上,它可以正常工作,因此我有目录,并且在添加或删除文件时,它会从文件系统中删除或创建文件(应如此)。
我的问题是:为什么我不能在Heroku上做同样的事情?我的意思是,我尝试通过上传文件并删除它来解决问题,但是当我重新启动应用程序(通过heroku ps:restart -a appname
)时出现了问题,因为这样做时,它会删除文件,就好像它保存在RAM中一样,而不是进入文件系统。
如果我尝试通过heroku run bash -a appname
查看目录中的文件,然后再查看该目录,则不会显示文件。
我该如何解决?
答案 0 :(得分:0)
Heroku文件系统是短暂的-这意味着在dyno运行时,对文件系统的任何更改只会持续到dyno关闭或重新启动为止。每个dyno都会使用最新部署中的文件系统的干净副本进行引导。这类似于运行诸如Docker之类的基于容器的系统的数量。
此外,在正常操作下,测功机每天都会在称为“循环”的过程中重新启动。
这两个事实意味着Heroku上的文件系统不适合持久存储数据。如果需要存储数据,我们建议使用数据库插件(例如Postgres)(用于数据)或专用文件存储服务(例如AWS S3)(用于静态文件)。