Heroku中的临时文件会发生什么(节点应用程序)

我有一个免费的Heroku帐户,我的Node应用程序使用Amazon S3来存储文件。 我使用s3fs模块和多方中间件一起暂时存储文件,然后上传到S3。

文件在fs上传和取消链接后,文件在本地开发期间仍然保留在本地临时文件夹中。 我已经在我的Heroku应用程序上部署了相同的代码,我担心如果有任何方法检查临时文件夹或每天删除它,因为该应用程序具有500MB的slug大小限制,上传的文件甚至可以超过100s的Mbs。

在Heroku中,每个dyno都有其自己的临时文件系统,并附有最近部署的代码的全新副本。

一般来说,临时文件系统就像任何文件系统一样工作。 你有权写入目录,比如/tmp ,你可以写文件到。

在测功机的整个生命周期中,正在运行的进程可以使用文件系统作为临时暂存器,并且在停止,重新启动或循环使用testing仪时,任何写入的文件都将被丢弃。

如果将临时文件存储在/tmp文件夹中,则可以运行df来检查已用和可用空间:

 heroku run bash df -h /tmp 

另外请注意,slu is是应用程序的压缩和预打包副本,文件不会存储在slu inside中,而是存储在您的dyno的临时文件系统中。 你不太可能拥有一个真正certificate必须从你的dyno的临时文件系统中删除文件的用例。

总之,您不必担心每天删除tmp文件夹,因为在dyno停止或重新启动的时候,任何写入的文件都将被丢弃,或者作为正常dynamicpipe理的一部分,每天大约一次。