如何使用Heroku的短暂文件系统(How to use heroku's ephemera

2019-06-18 04:33发布

我使用的是在Heroku上的Python / Django的(雪松堆栈),我已经得到了我需要编写一个会拉文件出S3存储和处理它的管理命令。 我不知道我理解如何使用临时文件系统。 是否有只有某些目录是可写的? 我发现暗示,有只可写(不过,这似乎并不适用于雪松堆栈)某些文件夹的其他文章。 我发现这个dev的文章 ,但它不会进入太多细节(注:我不明白,这只是暂时的,我只需要解压文件和处理文件)。 我可以创建一个文件夹中的应用程序的根目录下的任何地方? 我怎么会明白了吗? 好像我很可能只是用$ HOME。 我做了一些测试,通过连接到通过

$ heroku run bash

运行:

$ echo #HOME

收益:

/应用

运行:

$ mkdir $HOME/tmp

在应用程序的根目录创建一个文件夹,并使用相同的用户和组的其他文件和文件夹给。

所以...什么我错过这里? 一个更好的办法来做到这一点? 是否有这样的一个操作系统环境变量? 我已经运行“ENV”和我没有看到一个更好的。

Answer 1:

您可以创建“/ tmp目录”目录下的文件,并请求完成后,该文件将被销毁。 我在雪松这样做,我也没有任何问题。



Answer 2:

要真正了解了短暂的文件系统,你需要了解赛道是什么。 你可以阅读更多关于如何DYNOS工作 。 概括地说,虽然,这个过程在Heroku上与自己的文件系统上的虚拟机中运行。 该虚拟机可以停下来的原因很多,走的是文件系统与它一起。

重新启动应用程序时,底层的文件系统将被破坏,重新配置(例如heroku config ... ),缩放等。例如,如果您有两个网络DYNOS,写一些文件到文件系统的短暂,和规模三个DYNOS,这些文件将因为您的应用程序在新DYNOS运行被破坏。

一般情况下,短暂的文件系统的工作原理就像任何文件系统。 目录你有写权限,如$HOME/tmp ,你可以写文件。 需要持久的任何文件应该被写入S3或类似的持久存储。 S3是优选的Heroku的AWS上运行和S3提供了一些性能上的优势。 可以随意重建任何文件可以存储在测功机的临时商店。



文章来源: How to use heroku's ephemeral filesystem