【问题标题】:How to download some files from heroku如何从heroku下载一些文件
【发布时间】:2016-05-03 06:03:19
【问题描述】:

我使用 node.js 在 Heroku 中制作了一个 Dyno 应用

Dyno 的任务是每天收集数据并创建 json 文件

但我不知道如何在本地下载它们

我试过了

http://myappname.heroku.com/filename.json

但是失败了

Heroku 对我来说是新的,所以请不要像高级用户一样对待我

【问题讨论】:

  • 请贴出发生错误的代码,以便更具体地回答。
  • 兄弟你没有得到我的要求,我想知道如何从 dyno (worker) 模式下从 heroku 下载文件

标签: json node.js heroku terminal dyno


【解决方案1】:

你不能这样做。

如果您的代码每天将 JSON 文件写入 Heroku 服务器,该文件几乎会立即被删除,因此您无法下载它。

Heroku dynos 是短暂的。这意味着您“保存”到文件系统的任何数据几乎都会立即被删除。如果你需要保存文件,你应该把它们保存到像Amazon S3这样的文件服务——然后通过那里下载它们。

【讨论】:

  • 你能告诉我我是如何使用fs.writeFile("myfile.json", json)这一行来写入文件的吗,或者如果可能的话我可以保存在谷歌驱动器中吗?请告诉我代码也
  • almost instantly being deleted 不正确。 During the dyno’s lifetime its running processes can use the filesystem as a temporary scratchpad, but no files that are written are visible to processes in any other dyno and any files written will be discarded the moment the dyno is stopped or restarted.
  • 在这种情况下应该足够了。
  • Dynos 经常重启。您应该非常小心地执行此操作。每隔几个小时生成一个文件并不是一个可靠的方法来做这个人正在尝试做的事情。这是一个非常糟糕的建议。如果您需要该文件存在,请使用正确的文件存储!
【解决方案2】:

将您的 JSON 文件保存到 /public 文件夹。

确保您的 app.js 具有以下内容: app.use(express.static(__dirname + '/public'))

现在,您应该可以访问: http://myappname.heroku.com/filename.json

【讨论】:

  • 我的应用名称是 findapp912 ,所以我会在我的代码顶部使用 findapp912.use(express.static(__dirname + '/public')) 吗?我正在使用fs.writeFile("myfile.json", json)' to write file where i should specify the /public` 文件夹。
  • 不。你留下app.use
  • 使用fs.writeFile("public/myfile.json", json)'
  • 如果以后有人访问这个帖子,请不要这样做。 Dynos 非常频繁地重新启动,在您尝试下载文件之前,这些文件可能会被删除。这是一种非常不可靠的文件存储方式,如果您试图以可靠的方式下载文件,则不应这样做。
猜你喜欢
  • 2014-02-23
  • 1970-01-01
  • 2012-11-28
  • 2020-09-30
  • 1970-01-01
  • 2021-09-04
  • 1970-01-01
  • 2016-09-27
  • 2013-06-06
相关资源
最近更新 更多