使用 Parse Cloud 代码在 Heroku 文件系统中保存文件?

Saving files in Heroku file system using Parse Cloud code?

我在 Heroku 上使用 Parse Server,我想知道我是否能够通过云代码将文件保存到 heroku。

像这样:

云代码(main.js):

Parse.Cloud.define("saveFile", function(request, response) {
    fs.writeFile("test", "helloworld", function(err) {
      if(err) {
          return console.log(err);
      }
      console.log("The file was saved!");
    }); 
}

然后在终端中通过 curl 调用调用此函数:

curl -X POST -H "X-Parse-Application-Id: yourappid" -H “Content-Type: application/json" https://your-parse-server.herokuapp.com/parse/functions/saveFile

在 heroku 日志中,我能够看到打印 "The file was saved" 的控制台,但是,当我查看 heroku /app 目录时(通过 heroku CLI:heroku 运行 ls)文件"test" 未列出。

我的问题:

  1. 我是否无法创建任何文件并将其保存到 Heroku 文件系统?
  2. 文件保存了,但是文件的目录对我隐藏了?
  3. 有什么方法可以验证文件是否已保存?
  4. 有什么方法可以访问创建的文件(如果已保存)?

提前致谢!

不,这是不可能的。 Heroku 有一个 ephemeral filesystem.

无论何时部署您的应用程序,他们都会构建一个容器,您的代码版本可以在该容器上 运行。然后获取该容器并运行作为dynos。
如果您将文件写入磁盘,它们将不会保存在当前 运行ning 容器之外(任何其他 dyno 都不会拥有它们,并且当应用程序 restarted/deployed 时它们将永久丢失)。

您希望对应用程序进行的任何代码更改都需要进行新的部署。