Heroku-执行shell命令,访问临时文件系统中的文件

Heroku-执行shell命令,访问临时文件系统中的文件,shell,heroku,temporary-files,dyno,Shell,Heroku,Temporary Files,Dyno,我有一个Sinatra应用程序,我已经部署到Heroku。有一个网页,用户提交表单,将一些文件写入临时文件夹,然后执行shell命令,该命令必须使用刚刚写入的文件 问题是,当我执行shell时,执行的命令无法访问写入临时文件夹的文件。shell命令应该将另一个文件写入临时文件夹,但在shell命令完成运行后,Ruby代码看不到该文件 我认为web实例在一个dyno中运行,但是shell命令在另一个dyno中执行。有没有办法强制shell命令在运行HTTP请求/响应的同一个dyno中执行 编辑:

我有一个Sinatra应用程序,我已经部署到Heroku。有一个网页,用户提交表单,将一些文件写入临时文件夹,然后执行shell命令,该命令必须使用刚刚写入的文件

问题是,当我执行shell时,执行的命令无法访问写入临时文件夹的文件。shell命令应该将另一个文件写入临时文件夹,但在shell命令完成运行后,Ruby代码看不到该文件

我认为web实例在一个dyno中运行,但是shell命令在另一个dyno中执行。有没有办法强制shell命令在运行HTTP请求/响应的同一个dyno中执行



编辑:我做了更多的调试,看起来它们都在同一个dyno中运行(
ENV['dyno']
[backtick]echo$dyno[backtick]
)。

当你运行heroku bash时(即:
heroku run bash
),它会启动一个新的dyno,并拥有自己的短暂系统,这就是为什么你没有看到你想要的文件。你有没有想办法用别的方法接近它们?(我也想访问临时文件系统——出于开发/调试的目的。我现在所做的是使用系统命令,在我的例子中是通过PHP的
shell_exec
,例如:使用
ls
tail
)我不记得我到底做了什么。在这个项目中,我使用GoogleDrive作为PDF文件的数据存储。我认为您的shell命令需要将文件保存到一些基于云的目标,如AWS、Google Drive、FTP等。然后您可以从另一个Heroku实例访问文件。