node.js createWriteStream 不在 Heroku 上创建新文件
node.js createWriteStream doesn't create new file on Heroku
我有以下代码在我的本地主机 运行 node.js 0.12.0 上运行良好。该代码创建一个新文件,并从 readable 复制数据,但它不会在 Heroku 上创建新文件。
var output = fs.createWriteStream('public/images/test/testfile.png');
readable.pipe(output);
我认为这与权限有关,但每当我使用 heroku run bash
更改文件夹的权限然后 chmod -R 777 images/
Heroku 将其重置回其原始权限,即 drwx------
.
所以问题可能出在其他地方?
请注意,它静静地失败了,没有异常,日志中没有任何内容。
在 Heroku 中,dyno 的本地文件存储不是持久的(显然除了 git 回购文件),所以如果你写一个本地文件并且 dyno 重新启动文件将会消失,如果你启动另一个dyno 它将无法 "see" 文件。
heroku run bash
启动一个新的 "one-off" dyno(可以在这里阅读:https://devcenter.heroku.com/articles/one-off-dynos),所以文件将无法通过这种方式访问。
如果你想让你的数据持久化,最好使用一些数据库或持久存储插件。
我有以下代码在我的本地主机 运行 node.js 0.12.0 上运行良好。该代码创建一个新文件,并从 readable 复制数据,但它不会在 Heroku 上创建新文件。
var output = fs.createWriteStream('public/images/test/testfile.png');
readable.pipe(output);
我认为这与权限有关,但每当我使用 heroku run bash
更改文件夹的权限然后 chmod -R 777 images/
Heroku 将其重置回其原始权限,即 drwx------
.
所以问题可能出在其他地方?
请注意,它静静地失败了,没有异常,日志中没有任何内容。
在 Heroku 中,dyno 的本地文件存储不是持久的(显然除了 git 回购文件),所以如果你写一个本地文件并且 dyno 重新启动文件将会消失,如果你启动另一个dyno 它将无法 "see" 文件。
heroku run bash
启动一个新的 "one-off" dyno(可以在这里阅读:https://devcenter.heroku.com/articles/one-off-dynos),所以文件将无法通过这种方式访问。
如果你想让你的数据持久化,最好使用一些数据库或持久存储插件。