如何使用dyno i克隆我的文件系统?

时间:2015-02-09 01:41:49

标签: git heroku

我使用Heroku为facebook应用程序提供免费托管解决方案。当我启动我的应用程序一切正常。但是当我使用以下命令克隆应用程序时,

heroku git:clone -a graffiti-galore

我收到了我放到服务器上的所有文件。但我也想要我的php / flash应用程序创建的文件。有一堆图像文件被写入文件系统,并且heroku git:clone -a graffiti-galore命令,它不会引入文件系统上的新文件。我知道他们在文件系统上,但我不知道如何检索它们。

请有人吗?

1 个答案:

答案 0 :(得分:1)

这是故意不可能的,违反了Twelve-Factor architecture的原则以及ephemeral filesystem等几个Heroku约束。

想象一下,您正在进行git push,同时您的服务器也更改了您正在推送更改的文件,从而导致无法通过人工干预无法解决的冲突。 / p>

或者想象如果你从一个dyno缩放到20个dynos会发生什么。负载均衡器随机向其中一个后端发送请求。一些图像上传最终在dyno 1上,一些在dyno 2上,一些在dyno 3上,依此类推。您希望所有实例中的数据同步吗?如果关闭一个具有非同步数据的情况会发生什么?崩溃会发生什么?当您启动100个其他dynos时,100 GB存储的上传会发生什么?这就是为什么你不能也不应该在本地文件系统上存储持久性数据(例如用户上传);你需要使用专用的外部存储。有关上传到here的专门文章,如果您正确设置了CORS详细信息,也可以从Flash应用中直接上传到S3。

您可能也没有意识到heroku ps:restartheroku ps:scale和大约每24小时运行一次的自动操作会像git push heroku那样导致您的dynos重新启动,这意味着所有本地文件系统中的更改将丢失。