You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Heroku运行脚本写入tmp文件夹后查看不到文件是什么原因?

问题原因

你观察到的现象是Heroku的dyno隔离机制导致的,和账号是否付费、目录权限没有任何关系:

  • 每次执行heroku run命令,Heroku都会启动一个独立的一次性dyno实例,不同heroku run触发的dyno文件系统完全隔离,互不共享。你第一次运行脚本的dyno在任务执行完成后就被销毁了,第二次执行heroku run bash启动的是全新的空白dyno,自然看不到前一个实例写入的文件。
  • Heroku所有类型的dyno默认都开放tmp目录的写入权限,免费账号也可正常使用,不需要额外执行chmod修改权限。
  • 额外注意:即便是长期运行的dyno(如Web服务进程所在的dyno),本地文件系统的内容也非持久化:dyno每24小时会自动滚动重启,每次代码部署、手动重启dyno时,所有本地存储的文件(包括tmp目录下的内容)都会被清空,所以不能将dyno本地文件系统作为持久化存储方案使用。

验证方法

如果要确认文件写入逻辑正常,将写文件和读文件操作放在同一个heroku run会话即可:

  1. 直接组合命令执行:
heroku run "python createfile.py && ls tmp"
  1. 或者先执行heroku run bash进入交互式会话后,在同一个窗口内依次执行python createfile.py和ls tmp,就能看到生成的df.txt文件。

持久化方案建议

如果你需要长期保存生成的文件,需要对接外部对象存储服务,将生成的文件上传到外部存储后才能跨dyno访问、长期留存。

内容的提问来源于stack exchange,提问作者python1259

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:48:04