2013-07-20 52 views
0

我通過heroku run bash訪問了dyno並創建了文件foo。但是,當我從我的應用程序檢查時,它仍然無法找到foo。所以我深入地嘗試在測功機上安裝nginx,打開autoindex,我可以確認這些文件與通過heroku run bash和nginx訪問的文件不同。這是爲什麼?如何將文件放到正在顯示正在運行的進程的文件系統中。文件不同於運行過程和heroku運行bash

回答

2

當您發出heroku run bash時,會爲此一次性創建一個新的測功機,並且您可以訪問它。由於Heroku文件系統是短暫的,因此您創建的任何文件在註銷後都會「消失」。

這意味着無論何時創建新的測試儀或重新啓動測功機,文件系統都會恢復到其本機狀態。 「本地」狀態就是你的slu what - 你的應用程序的「編譯」版本 - 無論你在「git push」到Heroku之後由構建包構建。

如果你想要一個只讀文件可用於所有的Dynos,可以將它放入你的slu(中(例如:通過將其包含在git中,但也可以使用不同的構建包),或者將它放在某個地方你的dynos可以訪問(像共享數據庫,Redis/Memcache實例,或者最爲邏輯的:S3)。