如何在 Heroku 上使用破折号 dcc.Upload 和 dcc.Store?

How do I use dash dcc.Upload and dcc.Store on Heroku?

我最近发布了一个使用 Plotly Dash 库构建的 Heroku 网络应用程序。该网络应用程序依赖于使用 Dash 核心组件 (dcc) dcc.Upload 上传文件,然后使用 dcc.Store 保存文件。这在本地主机上完美运行,但是,当尝试将文件上传到 Heroku 托管的实时版本时,app.callback 取决于上传的文件不会触发。

  1. 在 Heroku 上使用 dcc.Uploaddcc.Store 有什么问题吗?我在论坛上没有发现任何相关问题。这些文件并不大(< 1 MB),正如我所说,它都可以在本地主机上运行。
  2. 因为它不在我的本地主机上,所以我在进行故障排除时遇到了问题。有什么简单的方法可以对 Heroku 上的实时网络应用程序进行故障排除吗?

您的应用程序通过的用户 运行 可能没有对上传后保存文件的目录的写入权限。

尝试检查目录的权限。如果仍然无法正常工作,请分享您遇到的错误。这样更容易分享解决方案。

经过一些挖掘,我发现回调的突然缺陷是由于 Heroku 代码 H12 的超时错误造成的。 H12 声明任何在 30 秒内没有响应的呼叫将被终止。因此,解决方案是将回调减少到更小的组件中,以便没有函数超过 30 秒限制。