我有以下代码在运行node.js 0.12.0的localhost上运行正常。代码创建一个新文件,并从可读文件中复制数据,但它不会在Heroku上创建新文件。
var output = fs.createWriteStream('public/images/test/testfile.png');
readable.pipe(output);
我认为它与权限有关,但每当我使用heroku run bash
更改文件夹的权限,然后chmod -R 777 images/
Heroku将其重置为原始权限{{1} }。
那么问题可能是别的吗?
请注意,它无声地失败,没有例外,日志中没有任何内容。
答案 0 :(得分:2)
在Heroku中,dyno的本地文件存储不是持久的(显然除了git repo文件),所以如果你写一个本地文件并且dyno重新启动文件将会消失,如果你启动另一个dyno它赢了,不能"看"文件。
heroku run bash
开始新的"一次性" dyno(可以在这里阅读:https://devcenter.heroku.com/articles/one-off-dynos),因此该文件不会被访问。
如果您希望数据持久存在,请更好地使用某些数据库或持久存储插件。