3

我的以下代码在运行 node.js 0.12.0 的本地主机上运行良好。该代码创建一个新文件,并从可读文件中复制数据,但它不会在 Heroku 上创建新文件。

var output = fs.createWriteStream('public/images/test/testfile.png');
readable.pipe(output);

我认为这与权限有关,但每当我更改文件夹的权限时,heroku run bashHerokuchmod -R 777 images/都会将其重置为原始权限,即drwx------.

那么问题可能是别的吗?

请注意,它静默失败,没有例外,日志中没有任何内容。

4

1 回答 1

3

在 Heroku 中,测功机的本地文件存储不是持久的(显然除了 git repo 文件),因此如果您编写本地文件并且测功机重新启动该文件将消失,如果您启动另一个测功机,它将无法“见”文件。

heroku run bash启动一个新的“一次性”测功机(可以在此处阅读:https ://devcenter.heroku.com/articles/one-off-dynos ),因此无法以这种方式访问​​该文件。

如果您希望数据持久化,最好使用一些数据库或持久存储插件。

于 2015-05-28T18:57:05.840 回答