Heroku dynos不共享文件系统

我的herokunetworking应用程序有一个function,从S3下载图像。 它是这样工作的:

  1. 有一个端点(A)请求下载一个图像数组,返回一个任务ID。
  2. 这些图像由A下载到我的应用程序的tmp Heroku文件夹中。 当所有的图像下载时,一个zip文件被创build。
  3. 当图像仍然可以下载时,networking客户端从点1调用具有任务ID的另一端点(B)。该第二端点检查已经下载了多less图像以返回进度百分比。 当压缩文件已经被创build时,它将“返回”压缩文件并下载图像。

这个方法在Heroku中用1个dyno运行良好。 不幸的是,在扩展到2个dynos后,我们意识到它不再工作。 原因是Heroku中的dynos不共享相同的文件系统,端点A和B由不同的dynospipe理。 因此,端点B中的测功机没有find任何文件。

有没有一种简单的方法使我的方法与多个dynos一起工作?

如果不是,我应该如何实现所描述的function? (从S3下载一个zip文件中的多个图像)

您可以创build第二个S3存储桶,并在完成下载后将zip文件压入第二个S3存储桶。 然后你可以redirect客户端直接从S3下载zip文件。

然后设置一个进程定期运行,以清理S3桶中的任何旧东西。