2016-01-04 53 views
0

我試圖創建Heroku的TMP文件夾使用FileUtils名爲「服務器的目錄:Rails - 無法在Heroku的tmp文件夾中創建目錄/文件?

# create servers folder is it doesn't exist 
dir = File.dirname("#{Rails.root}/tmp/servers") 
FileUtils.mkdir(dir) unless File.directory?(dir) 

我也嘗試使用Heroku的控制檯mkdir創造,但它似乎並沒有被創建:

sudo heroku run 'mkdir /app/tmp/servers' 
Running mkdir /app/tmp/servers on someapp... up, run.8611 

sudo heroku run 'ls /app/tmp/.' 
Running ls /app/tmp/. on someapp... up, run.3195 
cache heroku-buildpack-release-step.yml 

我在做什麼錯?

+0

你可能會在這個http://devcenter.heroku.com/articles/read-only-filesystem'#{Rails的幫助。 root}/tmp' –

+0

@RajarshiDas我以前讀過這個,它沒有幫助 – Tom

+2

你不能在Heroku上存儲文件。這不是服務器;它是一個應用服務器。你必須使用雲存儲,即使是你的'tmp'文件。 – Elvn

回答

5

你可以寫入文件系統,但是當你做heroku run這是一個關閉測功機如此完全獨立於您的網絡dynos,或者甚至第二個關閉dyno。它會從最後一次部署中獲取slug的新副本 - 它們不共享相同的文件系統,並且在會話斷開連接或終止時不會保留任何內容。

▶ heroku run bash 
Running bash on xxx... up, run.5673 
~ $ cd tmp 
~/tmp $ mkdir foo 
~/tmp $ cd foo 
~/tmp/foo $ touch bah.txt 
~/tmp/foo $ ls 
bah.txt 
~/tmp/foo $ 

,如果你退出,並打開一個新的會話

▶ heroku run bash 
Running bash on xxx... up, run.6709 
~ $ cd tmp 
~/tmp $ ls 
cache heroku-buildpack-release-step.yml 
~/tmp $ 
相關問題