我正在尝试使用Heroku的tmp文件夹中的FileUtils
创建一个名为'servers'的目录:
# 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 :(得分:5)
您可以写入文件系统,但是当您执行heroku run
时,它是一个一次性的dyno,因此完全独立于您的网络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 $