使用 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" 未列出。
我的问题:
- 我是否无法创建任何文件并将其保存到 Heroku 文件系统?
- 文件保存了,但是文件的目录对我隐藏了?
- 有什么方法可以验证文件是否已保存?
- 有什么方法可以访问创建的文件(如果已保存)?
提前致谢!
不,这是不可能的。
Heroku 有一个 ephemeral filesystem.
无论何时部署您的应用程序,他们都会构建一个容器,您的代码版本可以在该容器上 运行。然后获取该容器并运行作为dynos。
如果您将文件写入磁盘,它们将不会保存在当前 运行ning 容器之外(任何其他 dyno 都不会拥有它们,并且当应用程序 restarted/deployed 时它们将永久丢失)。
您希望对应用程序进行的任何代码更改都需要进行新的部署。
我在 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" 未列出。
我的问题:
- 我是否无法创建任何文件并将其保存到 Heroku 文件系统?
- 文件保存了,但是文件的目录对我隐藏了?
- 有什么方法可以验证文件是否已保存?
- 有什么方法可以访问创建的文件(如果已保存)?
提前致谢!
不,这是不可能的。 Heroku 有一个 ephemeral filesystem.
无论何时部署您的应用程序,他们都会构建一个容器,您的代码版本可以在该容器上 运行。然后获取该容器并运行作为dynos。
如果您将文件写入磁盘,它们将不会保存在当前 运行ning 容器之外(任何其他 dyno 都不会拥有它们,并且当应用程序 restarted/deployed 时它们将永久丢失)。
您希望对应用程序进行的任何代码更改都需要进行新的部署。