node.js createWriteStream 不会在 Heroku 上创建新文件

标签 node.js heroku node.js-stream

我有以下代码,可以在运行 node.js 0.12.0 的本地主机上正常工作。该代码创建了一个新文件,并从可读位置复制数据,但它不会在 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 repo 文件),所以如果你写入本地文件并且 dyno 重新启动,该文件将会消失,如果你启动另一个 dyno,它也不会消失。能够“查看”该文件。

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

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

关于node.js createWriteStream 不会在 Heroku 上创建新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30491949/

相关文章:

jquery - webpack 无法加载模块 jquery

javascript - 从 typescript 模块自动生成 index.d.ts,类型定义

node.js - Sails.js JSON 自定义 View

django - Heroku 没有获取更新的 django-bouncer 包

javascript - 将文件流式传输到 html 视频播放器,因为它正在使用 fs 在 Electron 中下载

javascript - 随时随地将文本附加到 Node.js 流

node.js - 是否可以使用 node.js 与 Websphere MQ 中的队列/主题进行通信

ruby-on-rails-4 - 在 Heroku 上部署时,公用文件夹中的图像不会更新

docker - heroku 评论应用程序 : deploying docker container

javascript - 如何制作一个 NodeJS 服务器,在连接时按时间间隔逐行发出字符串文件?